Git 저장소에서 디렉터리를 제거하려면 어떻게 해야 합니까?
Git 저장소에서 파일이 포함된 단일 디렉터리를 삭제하려면 어떻게 해야 합니까?
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
git 저장소에서만 폴더/디렉토리를 제거하고 로컬에서는 제거하지 않으려면 3가지 간단한 명령을 사용해 보십시오.
디렉터리를 제거하는 단계
git rm -r --cached FolderName
git commit -m "Removed folder from repository"
git push origin master
다음 커밋 시 해당 폴더를 무시하는 단계
다음 커밋에서 해당 폴더를 무시하려면 루트 폴더(git가 초기화된 주 프로젝트 디렉토리)에 .gitignore라는 이름의 파일을 만들고 폴더 이름을 넣습니다.원하는 만큼의 파일/폴더를 무시할 수 있습니다.
.gitignore 파일은 다음과 같이 표시됩니다.
/FolderName
어떤 이유로 karmakaze가 말한 것이 작동하지 않는다면, 당신은 당신이 사용하거나 파일 시스템 브라우저)를 사용하여 원하는 디렉터리를 삭제할 수 있습니다.윈도우즈 파일 탐색기).후 다음합니다.
git add -A
그리고 나서.
git commit -m 'deleting directory'
그리고 나서.
git push origin master
.
이전에 이미 폴더를 커밋한 적이 있어서 기록에서 디렉터리도 제거하려고 합니다.
다음을 수행했습니다.
에 합니다..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에서는 폴더가 제거되었지만 로컬 디스크에서는 삭제되지 않았습니다.
사용해 볼 수 있습니다.
디렉토리를 강제로 삭제합니다.
(와 함께)git rm
다른 답변에서 설명하는 것처럼), 그러면 git에 관한 한 디렉터리는 더 이상 존재하지 않습니다.빈 디렉토리를 커밋할 수 없으며 디렉토리를 제거할 수도 없습니다.
이것은 명시적으로 해야 하는 전복과는 다릅니다.svn rm emptyfolder/
그리고 부수적으로 그것이 왜.man
추적자라고 합니다.
"Git 저장소에 빈 디렉토리를 추가하는 방법"에 대한 답변은 다음 주제에 대한 FAQ로 연결됩니다.
현재 Git 인덱스(스테이지 영역)의 설계에서는 파일만 나열할 수 있으며 빈 디렉토리를 허용하도록 변경할 수 있을 정도로 유능한 사람은 이 상황을 해결하기 위해 충분히 신경을 쓰지 않았습니다.
디렉토리 내에 파일을 추가할 때 디렉토리가 자동으로 추가됩니다.즉, 디렉터리는 저장소에 추가할 필요가 없으며 자체적으로 추적되지 않습니다.
"라고 말할 수 있습니다.
git add <dir>
거기에 파일을 추가할 것입니다.만약 당신이 체크아웃에 존재할 디렉토리가 정말로 필요하다면, 당신은 그 디렉토리에 파일을 만들어야 합니다. .gitignore는 이 목적을 위해 잘 작동합니다. 그것을 비워두거나 디렉토리에 표시될 것으로 예상되는 파일의 이름을 채울 수 있습니다.
빈 폴더 삭제
나는 내가 만든 빈 디렉토리(폴더)를 삭제하고 싶었지만, Git이 빈 디렉토리를 추적하지 않는다는 것을 약간의 조사 후에 알게 되었습니다.작업 트리에 빈 디렉토리가 있으면 해당 디렉토리를 제거해야 합니다.
rm -r folderName
Git을 포함할 필요가 없습니다.
git Directory로 이동한 후 rm -rf <디렉토리 이름> 명령을 입력합니다.
디렉터리를 삭제한 후 다음 방법으로 변경 내용을 커밋합니다. git commit -m "사용자 커밋 메시지"
그런 다음 원격 GIT 디렉토리에서 변경사항을 푸시하기만 하면 됩니다: git push origin <지점 이름>
다음과 같이 폴더를 로컬로 삭제한 후 푸시할 수 있습니다.
git rm -r folder_name
git commit -m "your commit"
git push origin master
주로사용다니를 사용합니다.git add --all
은 다음과 같습니다.
rm -r folder_name
git add --all
git commit -m "some comment"
git push origin master
master
저장소의 다른 분기로 대체할 수 있습니다.
두 개의 답을 조합하는 것이 나에게 효과가 있었습니다.
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
Atlasian 소스 트리(Windows)(https://www.atlassian.com/software/sourcetree/overview) )를 사용할 수 있습니다.트리에서 파일을 선택하고 상단에 있는 "제거" 버튼을 누르기만 하면 됩니다.로컬 리포지토리 및 로컬 Git 데이터베이스에서 파일이 삭제됩니다.그런 다음 커밋하고 푸시합니다.
제 동료 중 한 명이 제가 생각하기에 강력한 BFG Repo-Cleaner를 제안했습니다.원하지 않는 데이터를 삭제할 뿐만 아니라 관련 커밋 정보에서 리포지토리를 정리합니다.
첫 번째 git 명령은 삭제하기 전에 사용자가 누구인지 알아야 합니다.
- 잽싸게
- git config user.name "discovery"
- git config user.email "someone@someplace.com "
- gitrm -r
- git commit -m "git dir"
- git 푸시 오리진 마스터
새 디렉터리 추가하기
mkdir <YOUR-DIRECTORY>
하지만 이제 Git는 디렉터리가 아닌 파일의 추적을 유지하기 때문에 이 새 디렉터리를 인식하지 못합니다.
git status
Git은 우리가 한 변화를 알지 못할 것이기 때문에 숨겨진 정보를 추가합니다..keep
이 새 변경 사항을 통해 Git에게 알릴 파일입니다.
touch /YOUR-directory/.keep
자, 만약 당신이 친다면.git status
Git는 변경 사항을 인지할 것입니다.
디렉터리를 삭제하려면 이 명령을 사용해야 합니다.
rm -r <YOUR-DIRECTORY>
를 사용하여 확인한 경우git status
디렉터리가 제거된 것을 볼 수 있습니다.
GitHub 웹 응용 프로그램에서 디렉터리를 삭제하는 경우 삭제 옵션을 찾을 수 있습니다.그러나 그런 다음 삭제할 파일 목록이 표시되고 맨 아래에 커밋 옵션이 표시됩니다.그것을 저지르는 것을 기억하세요.그렇지 않으면 디렉토리가 삭제되지 않습니다.
참조 - https://docs.github.com/en/repositories/working-with-files/managing-files/deleting-files-in-a-repository
언급URL : https://stackoverflow.com/questions/6313126/how-do-i-remove-a-directory-from-a-git-repository
'programing' 카테고리의 다른 글
요소가 비활성화된 경우 마우스 오버 이벤트 발생 (0) | 2023.05.10 |
---|---|
Linux의 명령줄에서 일련의 이미지를 PDF로 변환하려면 어떻게 해야 합니까? (0) | 2023.05.05 |
스테딘과 끈을 연결하는 방법은? (0) | 2023.05.05 |
WPF의 스택 패널에서 왼쪽 및 오른쪽 컨트롤 정렬 (0) | 2023.05.05 |
PostgreSQL: Postgre에 테이블 표시SQL (0) | 2023.05.05 |