2011-08-25 6 views
1

실수로 거대한 원치 않는 폴더를 커밋하고 git에서 master로 푸시했습니다. 그리고 나는 그 후 하나 더 커밋했다. 너무이이전 커밋으로 롤백 할 때 git 재설정 문제

같은 A - B - C - D

C - 문제가 나는 명령을

git reset --hard <sha1-commit-id-of-B> 

git push origin HEAD --force 
사용 실수 실현 후

커밋이며

을 B로 롤백해야합니다. 괜찮 았지만 Repo의 크기는 여전히 동일합니다. 나는 혼란 스러웠다. 어떻게하면 쓸모없는 파일 (영구적으로)을 제거 할 수 있습니까, 그래서 그것은 자식에 나타납니다 실 거예요?

답변

3

이렇게하면 분기 포인터를 뒤로 이동해도 git은 더 이상 참조되지 않는 개체를 즉시 가비지 수집하지 않습니다. 이것은 좋은 일입니다. 예를 들어 실수로 git reset --hard을 수행하면 보통 커밋의 객체 이름을 찾기 위해 reflog을 사용하고 이전 커밋을 쉽게 복구 할 수 있습니다. 그들. 쓰레기는 공간을 확보하기 위해 즉시 수집에 당신이 정말로 원하는 경우에, 당신은 할 수 있습니다 :

git gc --prune=now 

그러나, 하나는 거의 절대이 작업을 수행 할 필요가 없습니다 ...

+0

감사 마크, 그게 전부입니다. 그것의 구제 내가 가비지 수동으로 수집 할 필요가 없어, 내가 할게 자식 할거야 .. :) – RameshVel

관련 문제