반응형
git 저장소에서 파일을 완전히 제거하려면 어떻게해야합니까?
최근에 내 텍스트 편집기가 사용하는 프로젝트 파일 (다른 정크와 함께)에 프로젝트의 git 저장소가 추가되었음을 알았습니다. 실제로 프로젝트의 일부가 아니기 때문에 제거하고 싶지만 git rm
저장소에서 이전 버전을 제거하지 않으며 유망 해 보이는 다른 것을 찾을 수 없습니다.
원하는 도구는 git filter-branch
입니다. 사용법은 여기 에 설명 되어 있지만 기본적으로 다음과 같습니다.
$ git filter-branch --tree-filter 'rm -f my_file' HEAD
모든 커밋 에서 "my_file"을 제거 합니다.
이렇게하면 모든 커밋이 다시 작성되므로 원격 저장소로 푸시하면 (a) 강제로 업데이트해야하며 (b) 사용자로부터 가져온 다른 모든 사람은 이제 중복 된 커밋을 갖게됩니다 (기록을 다시 작성 했으므로). git rebase
man 페이지 에 설명되어 있습니다.
이것이 git filter-branch
목적이지만 리포지토리 기록이 변경되고 기록 재 작성 후 커밋 해시가 달라집니다.
공간을 비우고 싶다면을 사용하는 것이 좋습니다 git forget-blob
. 왜냐하면 git filter-branch
리모트, 리플 로그, 태그 등에 의해 여전히 참조 될 수 있기 때문에 git만으로는 파일을 잊을 수 없기 때문 입니다.
git forget-blob main.c.swp
여기에서 자세한 정보를 얻을 수 있습니다.
참고 URL : https://stackoverflow.com/questions/3458685/how-can-i-completely-remove-a-file-from-a-git-repository
반응형
'Nice programing' 카테고리의 다른 글
클라이언트에게 세션 시간이 초과되었음을 알리기 위해 어떤 http 상태 코드를 사용해야합니까? (0) | 2020.10.26 |
---|---|
어떤 단위 테스트 프레임 워크? (0) | 2020.10.26 |
izip 대신 zip을 사용하는 것이 더 좋은 때는 언제입니까? (0) | 2020.10.26 |
심볼릭 링크를 제거하려면 어떻게합니까? (0) | 2020.10.26 |
Haml에서 if 조건을 작성하는 방법은 무엇입니까? (0) | 2020.10.26 |