내 GitHub 저장소에 2개의 디렉토리가 있습니다. 그 중 하나를 삭제하고 싶습니다. 전체 저장소를 삭제하고 다시 생성하지 않고 어떻게 할 수 있습니까?
질문자 :Sahat Yalkabov
git 및 로컬에서 디렉토리 제거
두 디렉토리 모두에서 '마스터'를 체크아웃할 수 있습니다.
git rm -r one-of-the-directories // This deletes from filesystem git commit . -m "Remove duplicated directory" git push origin <your-git-branch> (typically 'master', but not always)
git에서 디렉토리를 제거하지만 로컬은 아닙니다.
주석에서 언급했듯이 일반적으로 수행하려는 작업은 git에서 이 디렉토리를 제거하지만 파일 시스템(로컬)에서 완전히 삭제하지 않는 것입니다.
이 경우 다음을 사용하십시오.
git rm -r --cached myFolder
karmakaze
로컬이 아닌 git 저장소에서만 폴더/디렉토리를 제거하려면 3개의 간단한 명령을 시도하십시오.
디렉토리를 제거하는 단계
git rm -r --cached FolderName git commit -m "Removed folder from repository" git push origin master
다음 커밋에서 해당 폴더를 무시하는 단계
다음 커밋에서 해당 폴더를 무시하려면 루트 폴더(git이 초기화되는 기본 프로젝트 디렉토리)에 .gitignore 라는 파일 하나를 만들고 해당 폴더 이름을 넣습니다. 원하는 만큼 파일/폴더를 무시할 수 있습니다.
.gitignore 파일은 다음과 같습니다.
/FolderName
Suresh Karia
어떤 이유로 karmakaze가 말한 대로 작동하지 않는 경우 파일 시스템 브라우저(예: Windows 파일 탐색기)를 사용하거나 사용하여 원하는 디렉토리를 삭제해 볼 수 있습니다. 디렉토리를 삭제한 후 다음 명령을 실행합니다.
git add -A
그리고
git commit -m 'deleting directory'
그리고
git push origin master
.
cmcculloh
다음을 시도할 수 있습니다. git rm -rf <directory_name>
디렉토리를 강제로 삭제합니다.
Breen ho
디렉토리에서 파일을 제거하면( git rm
) git에 관한 한 디렉토리는 더 이상 존재하지 않습니다. 빈 디렉토리를 커밋하거나 제거할 수 없습니다.
svn rm emptyfolder/
를 수행해야 하는 Subversion과 달리 man
페이지에서 스스로를 "바보 컨텐츠 추적기"로 설명하는 이유입니다.
"빈 디렉토리를 git 저장소에 추가하는 방법" 에 대한 답변은 이 주제에 대한 FAQ 링크입니다.
현재 git 인덱스(스테이징 영역)의 디자인은 파일 나열만 허용하며 빈 디렉터리를 허용하도록 변경할 만큼 유능한 사람은 아무도 이 상황을 해결하기 위해 충분히 신경 쓰지 않았습니다.
디렉토리는 내부에 파일을 추가할 때 자동으로 추가됩니다. 즉, 디렉토리는 저장소에 추가할 필요가 없으며 자체적으로 추적되지 않습니다.
git add <dir>
"이라고 말하면 거기에 파일이 추가됩니다.체크아웃에 존재하는 디렉토리가 정말로 필요한 경우 그 안에 파일을 생성해야 합니다. .gitignore는 이러한 목적에 적합합니다. 비워두거나 디렉토리에 표시할 파일 이름을 입력할 수 있습니다.
dbr
나는 이미 이전에 폴더를 커밋했고 기록에서도 디렉토리를 제거하고 싶습니다.
나는 다음을 수행했다.
.gitignore
폴더 추가:
echo Folder_Name/ >> .gitignore
모든 커밋에서 제거:
git filter-branch --index-filter 'git rm -rf --cached --ignore-unmatch Folder_Name/' --prune-empty --tag-name-filter cat -- --all
이전 커밋에서 참조를 제거합니다.
git for-each-ref --format="%(refname)" refs/original/ | xargs -n 1 git update-ref -d
모든 오래된 참조가 완전히 제거되었는지 확인하십시오.
rm -Rf .git/logs .git/refs/original
가비지 수집 수행
git gc --prune=all --aggressive
변경 사항을 온라인 저장소로 푸시합니다.
git push
여기에서 완료되었습니다.
그러나 다음을 사용하여 모든 변경 사항을 모든 분기에 푸시할 수 있습니다. 그러나 이 명령은 주의하십시오!
git push origin --all --force git push origin --tags --force
그 후 폴더는 git에서 제거되었지만 로컬 디스크에서는 삭제되지 않았습니다.
Skyborg
git 디렉토리로 이동한 후 다음 명령을 입력하십시오. rm -rf < 디렉토리 이름 >
디렉토리를 삭제한 후 다음을 수행하여 변경 사항을 커밋합니다. git commit -m "Your Commit Message"
그런 다음 원격 GIT 디렉토리에 변경 사항을 푸시하기만 하면 됩니다. git push origin < Branch name >
anky
빈 폴더 삭제 용
내가 만든 빈 디렉토리(폴더)를 삭제하고 싶었습니다. Git이 빈 디렉토리를 추적하지 않는다는 것을 알게 된 일부 연구 후에 git이 삭제할 수 없습니다. 작업 트리에 빈 디렉토리가 있으면 다음을 사용하여 간단히 제거해야 합니다.
rm -r folderName
Git을 포함할 필요가 없습니다.
Ridha Rezzag
다음과 같이 폴더를 로컬에서 삭제한 후 푸시할 수 있습니다.
git rm -r folder_name git commit -m "your commit" git push origin master
shrikant
나는 일반적으로 git add --all
을 사용하여 원격 저장소에서 파일/폴더를 제거합니다.
rm -r folder_name git add --all git commit -m "some comment" git push origin master
master
는 저장소의 다른 분기로 대체될 수 있습니다.
ettanany
Attlasian 소스 트리(Windows)( https://www.atlassian.com/software/sourcetree/overview )를 사용할 수 있습니다. 트리에서 파일을 선택하고 상단의 "제거" 버튼을 누르기만 하면 됩니다. 파일은 로컬 저장소 및 로컬 git 데이터베이스에서 삭제됩니다. 그런 다음 커밋하고 푸시합니다.
Sergey Groshev
제 동료 중 한 명이 강력하다고 생각하는 BFG Repo-Cleaner를 제안했습니다. 원하지 않는 데이터를 삭제할 뿐만 아니라 관련 커밋 정보에서 저장소를 정리합니다.
thanh.h.le
첫 번째 git 명령은 무엇이든 삭제하기 전에 자신이 누구인지 알아야 합니다.
- 자식 초기화
- git config user.name "누군가"
- git config user.email "someone@someplace.com"
- 자식 rm -r
- git commit -m "디렉토리 삭제"
- git push 오리진 마스터
Zeus
새 디렉토리를 추가하려면:
mkdir <YOUR-DIRECTORY>
하지만 이제 Git은 이 새 디렉토리를 인식하지 못합니다. Git은 디렉토리가 아닌 파일을 추적하기 때문입니다. DIRECTORY
git status
Git은 우리가 만든 변경 사항을 인식하지 못하므로 숨겨진 .keep
파일을 추가하여 Git이 이 새로운 변경 사항을 인식할 수 있도록 합니다.
touch /YOUR-directory/.keep
git status
를 누르면 Git이 변경 사항을 인식합니다.
그리고 디렉토리를 삭제하려면 이 명령을 사용해야 합니다.
rm -r <YOUR-DIRECTORY>
git status
를 사용하여 확인하면 디렉토리가 제거된 것을 볼 수 있습니다.
Abo3atef
2 가지 답변의 조합이 저에게 효과적이었습니다.
git rm -r one-of-the-directories git commit . -m "Remove duplicated directory" git push
여전히 경고가 표시되면 파일을 수동으로 제거하십시오.
git filter-branch --tree-filter 'rm -rf path/to/your/file' HEAD git push
user3821178
rm -r -f <folder name>
또는 rm -r --force <folder name>
시도 - 강제로 폴더 삭제
Arshad
출처 : http:www.stackoverflow.com/questions/6313126/how-to-remove-a-directory-from-git-repository
'etc. > StackOverFlow' 카테고리의 다른 글
instanceof를 호출하기 전에 null 검사가 필요합니까? (0) | 2022.03.04 |
---|---|
jQuery Ajax 호출 후 리디렉션 요청을 관리하는 방법 (0) | 2022.03.04 |
JSON 파일을 예쁘게 인쇄하는 방법은 무엇입니까? (0) | 2022.03.04 |
Python에서 정수를 문자열로 변환 (0) | 2022.03.04 |
Python에서 문자열 반전 (0) | 2022.03.04 |