Git: 기록 커밋에서 파일을 제거하는 방법?
ID에 대한 커밋이 있습니다.56f06019
,예를들면.이 커밋에서 실수로 대용량 파일(50MB)을 커밋했습니다.다른 커밋에서 같은 파일을 올바른 크기(작은)로 추가했습니다.지금은 복제할 때 레포가 너무 무겁습니다.제 레포 크기를 줄이기 위해 레포 히스토리에서 그 큰 파일을 제거하려면 어떻게 해야 합니까?
Pro Git book 9장에는 객체 제거에 대한 부분이 있습니다.
여기에 단계의 개요를 간단히 설명하겠습니다.
git filter-branch --index-filter \
'git rm --cached --ignore-unmatch path/to/mylarge_50mb_file' \
--tag-name-filter cat -- --all
앞에서 설명한 리베이스 옵션처럼,filter-branch
다시 쓰기 작업 중입니다.만약 당신이 역사를 출판했다면, 당신은 다음과 같이 해야 할 것입니다.--force
새 심판을 푸쉬합니다.
그filter-branch
접근 방식은 훨씬 더 강력합니다.rebase
어프로치, 이래로
- 모든 분기/참조 작업을 한 번에 수행할 수 있습니다.
- 태그의 이름을 바꿉니다.
- 파일을 추가한 후 병합 커밋이 여러 번 발생한 경우에도 정상적으로 작동합니다.
- 파일이 (a) 분기 기록에서 여러 번 추가(재)되거나 removed되어도 정상적으로 작동함
- 는 관련 없는 새로운 커밋을 만들지 않고, 관련된 트리를 수정하면서 커밋을 복사합니다.이는 서명된 커밋, 커밋 노트 등이 보존됨을 의미합니다.
filter-branch
백업도 유지하므로 reflog 및 가비지 컬렉션을 만료하지 않는 한 repo의 크기가 즉시 줄어들지 않습니다.
rm -Rf .git/refs/original # careful
git gc --aggressive --prune=now # danger
깃 추가 도구를 사용할 수 있습니다.삭제 명령은 저장소에서 과거 커밋 및 태그를 포함한 파일을 완전히 제거합니다.
https://github.com/tj/git-extras/blob/master/Commands.md
저는 윈도우 https://stackoverflow.com/a/8741530/8461756 에서 다음 답변을 사용해 보았습니다.
한 개의 따옴표는 윈도우에서 작동하지 않으며, 두 개의 따옴표가 필요합니다.
팔로잉은 나를 위해 일했습니다.
git filter-branch --force --index-filter "git rm --cached --ignore-unmatch PathRelativeRepositoryRoot/bigfile.csv" -- --all
빅 파일을 제거한 후, GitHub 마스터로 변경 사항을 푸시할 수 있었습니다.
대화형 모드에서 gitbase를 사용해야 합니다. 여기 예를 참조하십시오.GitHub에서 커밋을 제거하려면 어떻게 해야 합니까? 그리고 이전 커밋을 제거하는 방법입니다.
커밋이 HEAD에서 10 커밋을 뺀 경우:
$ git rebase -i HEAD~10
당신의 역사의 판본이 끝나면, 당신은 "새로운" 역사를 추진해야 하고, 당신은 그것을 추가해야 합니다.+
강제(푸시 옵션의 refspec 참조):
$ git push origin +master
다른 사용자가 리포지토리를 이미 복제한 경우 기록을 변경했기 때문에 이를 알립니다.
간단한 명령을 사용하여 삭제할 수 있습니다.
git rm -r -f app/unused.txt
git rm -r -f yourfilepath
언급URL : https://stackoverflow.com/questions/8740187/git-how-to-remove-file-from-historical-commit
'source' 카테고리의 다른 글
자바스크립트 라이브러리의 선두 세미콜론은 무엇을 합니까? (0) | 2023.11.05 |
---|---|
원본을 참조하는 동안 자바스크립트 함수 덮어쓰기 (0) | 2023.11.05 |
24-48시간 전의 mysql 행을 어떻게 얻습니까? (0) | 2023.10.31 |
Google 스프레드시트에서 SUMIF 올바르게 사용 (0) | 2023.10.31 |
WooCommerce 구독 "잘못된 반복 배송 방법" (0) | 2023.10.31 |