programing

Gitrepo에서 파일을 정리하지 못했습니다. 새 백업을 만들 수 없습니다.

batch 2023. 8. 14. 22:43
반응형

Gitrepo에서 파일을 정리하지 못했습니다. 새 백업을 만들 수 없습니다.

다음을 실행하여 원격 저장소에서 파일을 제거하려고 했습니다.

git filter-branch --index-filter 'git rm --cached --ignore-unmatch Rakefile' HEAD

하지만 Git는 불평합니다.

새 백업을 만들 수 없습니다.이전 백업이 refs/original/에 이미 있습니다.
-f로 백업 강제 덮어쓰기
rm: /.git-rewrite/backup-refs를 제거할 수 없음: 권한이 거부되었습니다.
rm: 디렉토리 /.git-rewrite를 제거할 수 없음: 디렉토리가 비어 있지 않습니다.

Windows에서 .git-rewrite 디렉터리를 이미 삭제한 후였습니다.

그 파일을 어떻게 제거할 수 있습니까?제 레포에 있는 29Mb 파일이라 파일을 제거해야 합니다.

의 커밋을 삭제하려고 했습니다.git rebase -i하지만 분명히 커밋이 많은 다른 파일을 건드렸기 때문에 Git은 갈등을 호소했고 저는 안전을 위해 중단했습니다.

필터 분기 작업을 이미 수행했습니다.필터 분기 후 Git는 뭔가 잘못될 경우를 대비하여 이전 커밋에 대한 참조를 유지합니다.

에서 확인할 수 있습니다..git/refs/original/…해당 디렉토리와 내부의 모든 파일을 삭제하거나 다음을 사용합니다.-fGit가 이전 참조를 삭제하도록 강제하는 플래그입니다.

git filter-branch -f \
--index-filter 'git rm --cached --ignore-unmatch Rakefile' HEAD

원래 백업을 제거하려면 다음 명령을 사용합니다.

git update-ref -d refs/original/refs/heads/master

다음은 내 Gitrepo를 필터링하는 데 사용한 요점입니다. https://gist.github.com/k06a/25a0214c98bc19fd6817

저도 같은 문제가 있었는데 위의 답변으로는 해결되지 않았습니다..git/refs/original/ 디렉토리가 남아 있지 않았습니다.해결책은 .git/packed-refs 파일을 삭제하는 것이었습니다.

filter branch 명령에 힘을 추가합니다.

언급URL : https://stackoverflow.com/questions/6403601/purging-file-from-git-repo-failed-unable-to-create-new-backup

반응형