몇 달 전 나는 git 코드 저장소에 릴리스 tarball을 추가하고 커밋했습니다. 몇 가지 커밋이 나중에 파일을 제거하고 제거를 커밋했습니다. 이 하나의 파일은 저장소 전체 크기의 10 배에 가까운 크기 였기 때문에 .git에 해당 파일이 있으면 복제 속도가 크게 느려집니다. 이 시점에서 파일을 추가하고 제거한 커밋 쌍 이후로 수 백개의 커밋이있었습니다.Git : 이전 커밋과 관련된 객체 제거
취소 (추가 및 제거) 된 두 커밋을 제거하고 저장소를 비우지 않고 .git 파일의 복사본을 제거하는 방법이 있습니까? 당신은 git rebase
을하고 역사의 밖으로 커밋을 쓸 수
또 다른 언급 : 리버스 리포지토리를 다른 곳으로 밀어 넣으면 피어 개발자가 어렵게 만듭니다. 그러나 아라크 니드 (Araqnid)가 말했듯이, 주변에는 방법이 없습니다. –
다른 말로하면, 이렇게하면 기록을 다시 씁니다. 실세계 역사와 마찬가지로 Git 역사를 재 작성하려면 글로벌 음모가 필요합니다. 역사와 만난 적이있는 모든 사람들이 함께 공모하여이를 제거해야합니다. 저 처분장에서 뽑은 모든 사람들, 저 처분장에서 끌어 낸 누군가 등등. 그들은 모두 * 그들의 역사를 다시 써야하고, 병합은 더 이상 작동하지 않을 것입니다. –