Git 리포지토리에서 파일을 제거하지 못했습니다. 새 백업을 만들 수 없습니다.


116

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

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

하지만 힘내는 불평

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

이것은 Windows에서 .git-rewrite 디렉토리를 이미 삭제 한 후입니다.

해당 파일을 어떻게 제거 할 수 있습니까? 내 저장소에있는 29Mb 파일이므로 파일을 제거해야합니다.

에서 커밋을 삭제하려고했지만 git rebase -i커밋이 많은 다른 파일에 영향을 주었기 때문에 Git이 충돌을 호소하고 안전을 위해 중단했습니다.


1
검색 엔진의 경우 : 오류 메시지가 인 경우에도 적용될 수 있습니다 .git-rewrite already exists, please remove it.
Drew Noakes 2015-06-19

답변:


219

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

에서 찾을 수 있습니다 .git/refs/original/…. 해당 디렉토리와 그 안의 모든 파일 -f을 삭제 하거나 플래그를 사용하여 Git이 이전 참조를 삭제하도록합니다.

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

10
마침내 작동하게되었습니다. 감사합니다! -f 플래그를 시도했지만 문제는 명령 끝에 넣는 것입니다. 머리 -f. 당신의 명령을보고 처음에 깃발을 꽂아 보았습니다. = D
Cardin 2011 년

12
옵션 플래그 ( -f)는 참조 ( ) 앞에옵니다 HEAD. refs go last
knittl 2011-06-20

-f를 추가하고 디렉토리를 삭제 한 후에도 동일한 오류가 발생합니다. 어떤 아이디어?
Yaron

1
@knittl, 나는 git add. .git/refs/original/폴더를 삭제 -f하고 git filter-branch명령에 플래그를 사용한 후에도 원본 포스터와 동일한 오류가 발생했습니다 . 제 경우 해결책은 .git/packed-refs파일 을 삭제하는 것 입니다.
Yaron

1
@knittl, 해결 방법을 찾았지만 문제가 무엇인지 찾지 못했습니다. 기본적으로 --ignore-unmatch명령을 추가 git rm했고 순조롭게 진행되었습니다!
Gabrielius 2015

21

이 명령을 사용하여 원본 백업을 제거하십시오.

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

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


이것이 백업을 제거하는 올바른 솔루션입니다! 삭제 .git/refs/original/해도 문제가 해결되지 않습니다.
Erik Koopmans

'개발'내 경우에 ... 당신은 수정을 시도하는 지점에 마스터를 변경해야합니다
데미안 그린

git show-ref | awk '/ refs.original.refs/{print$2}'저장소에있는 모든 백업을 찾으려면
Dan

4

나는 같은 문제가 있었고 위의 대답은 그것을 고치지 못했습니다. .git / refs / original / 디렉토리가 남아 있지 않습니다. 나를위한 해결책은 .git / packed-refs 파일을 삭제하는 것이 었습니다.


같은 문제입니다. 아니 .git/packed-refs파일, 그러나없이 폴더 original에서 .git/refs. 누군가?
XedinUnknown

명령에 플래그를 추가하여 여기서 해결 되었습니다-r .
XedinUnknown 2015-06-25

여기에도 같은 문제가 있습니다. 압축 참조를 삭제하면 문제가 해결되었지만 나머지 git 디렉토리도 망가졌고 백업에서 복원해야했습니다.
Kevin Yin

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.