2013-08-30 2 views
2

github 리포지토리에 일부 변경 사항을 적용하려고하지만 git이 리포지토리에 있다고 생각하는 대용량 파일 때문에 푸시가 실패합니다.github 커밋의 Phantom 파일

remote: Error code: 38865a38ccad9b1d9f394c35344906e6 
remote: warning: Error GH413: Large files detected. 
remote: warning: See http://git.io/iEPt8g for more information. 
remote: error: File videos/Lecture2.mp4 is 134.01 MB; this exceeds GitHub's file size limit of 100 MB 

그러나 비디오 파일/Lecture2.mp4는 저장소에 없습니다. 동영상 디렉토리도 없습니다.

다른 변경 사항을 적용 할 수 있도록이 파일을 제거하는 방법에 대한 아이디어가 있으십니까?

+0

저장소에 없다는 것을 어떻게 확신합니까? –

+0

파일이 기록의 어느 곳에 나 존재합니까? 그것은 힘내를 위해 작업 카피의 현재 상태에 존재할 필요가 없다. 단지 당신의 히스토리에 한 번만 존재해야한다. 그리고 나서 당신이 당신의 repo에 남아있을지라도, 가장 최근의 커밋에서 코드의 현재 상태. –

+0

'git log --oneline --name-status --patch'를 실행하고'less' 호출기에'/ Lecture2.mp4'를 입력하면, 커밋 히스토리에 파일이 나타나는지 보시겠습니까? –

답변

1

해당 파일이 git repo의 히스토리에서 커밋되었지만 삭제 된 경우 현재 상태에서는 볼 수 없지만 여전히 푸시됩니다.

BFG에게 기록에서 큰 파일을 삭제하려고 시도해보십시오.

BFG Repo-Cleaner : "git-filter-branch와 같이 크거나 번거로운 모양을 제거하지만 빠릅니다."

+1

아마도'git filter-branch --tree-filter '파일 filename'HEAD' – nishantjr

+0

@nishantjr는 'bfg --delete-files filename my-repo.git'보다 쉽습니다. 그리고'bfg'는'git filter-branch'보다 훨씬 빠릅니다. – VonC

+0

BFG가 더 좋다는 것을 확인할 수 있습니다. 큰 파일 - 지금 삭제 된 -하지만 - stil-choking-'$ git push '문제를 해결하기 위해 @ nishantjr의 명령을 복사하고 붙여 넣는 단순함을 선호하지만, 그냥 작동하지 않습니다. bfg를 다운로드하고 설치하고 git 쉘에서 java를 사용하는 것은 많은 일처럼 보였지만 트릭을 만들었습니다. –

관련 문제