오래된 커밋 기록을 제거하여 수명이 긴 GIT 저장소를 축소해야합니다.
다음과 같이 sth를 변환하십시오.
A - B - D - E - ...
\ /
C
으로:
D' - E - ...
커밋 E 이후의 커밋 기록은 매우 복잡하고 많은 분기, 태그, 병합 등을 포함합니다.
이 저장소는 아직 원격 저장소로 푸시되지 않은 마이그레이션 된 저장소이기 때문에 다른 사용자는 신경 쓰지 않습니다. 내 로컬 컴퓨터의 베어 저장소입니다. 필요한 경우 "일반"으로 변환 할 수 있습니다.
D '를 만들고 해시를 인쇄하려면 다음을 사용할 수 있습니다.
git commit-tree D^{tree}
그러나 문제는 커밋 E의 부모를 커밋 D에서 커밋 D '로 전환하는 방법입니다.
이 단계에서 내가 이미 찾은 대부분의 팁은 D '에 마스터 브랜치를 리베이스하는 것을 제안하지만, 여러 브랜치, 태그, 병합이 많은 10 년 이상 커밋으로 복잡한 히스토리를 가지고있는 경우 쉽지 않습니다. 기타
새 부모 커밋에 현재 커밋의 모든 내용이 포함되어 있다고 100 % 확신 할 때 git rebase를 수행하지 않고 단순히 부모 커밋으로 포인터를 전환하는 저수준 GIT 명령이 있습니까?
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다