2014-12-10 3 views
4

git 저장소에 1GB 영화를 추가하고 커밋한다고 가정합니다. 다음으로 나는 방금 밀던 커밋을 되돌리고 밀어 붙입니다. 이제 최신 헤드에 1GB 파일이 더 이상 포함되지 않습니다.Git에서 바이너리를 덤프하고 되돌리기?

커밋을 되 돌렸을지라도 1GB 파일이 이제는 git 히스토리의 일부가되었습니다. 그 이유는 1GB 파일없이 최신 헤드에서 작업하고 있지만 여전히 1GB가 더 크고 영원히 남아있을 것입니다.

+0

[? 제거하는 방법/Git 저장소에 역사를 커밋에서 큰 파일을 삭제]의 중복 가능성 (http://stackoverflow.com/questions/2100907/how-to-remove-delete -a-large-file-commit-history-in-git-repository) –

답변

3

커밋을 되 돌렸을지라도 1GB 파일이 이제는 영구히 git 히스토리의 일부가되는 것이 맞습니까?

예, 버전 관리 시스템은 으로 유지되며 기록을 유지합니다.

당신은 그것의 역사를 필터링하고 크기를 줄이기 위해 ( git filter-branch 또는 BFG로) 청소 (그리고 그 역사를 바꿀 것) " How to update/shrink the size of my github repo after running BFG Repo Cleaner"에서 언급 한 바와 같이

또한, 당신이해야 할 필요가

필터 후 :

git reflog expire --expire=now --all 
git gc --prune=now --aggressive 
+0

git repo에 대한 제한을 설정할 수 있습니까? zip, * .dll 파일을 커밋/푸시 할 수 있습니까? .gitignore – u123

+0

@ u123을 사용하는 것 외에도 푸시 된 파일 목록을 필터링하는 사전 수신 후크를 넣을 수 있습니다 (http://stackoverflow.com/q/2569960/6309와 같은 비트로) – VonC