우리 회사는 CVS에서 git로 변환 중입니다. 우리는 오랫동안 CVS를 사용 해왔고, 거대한 역사가 있습니다. 손으로 할 일이 너무 많습니다.대규모 git commit quake
로그를 살펴보면 할 수있는 스쿼시가 많이 있습니다. 아주 많이. 내가하고 싶은 것은 두 개의 인접한 커밋을 비교하는 스크립트에 연결하는 것이다. true를 반환하면 커밋 메시지를 연결하고 커밋을 스쿼시합니다. 나는 또한 두 커밋과 커밋 메시지를 받아들이고 명령을 함께 스쿼시하는 명령에 만족할 것이다.
git rebase --interactive는 필자가 필요로하는 것에 가깝지만 "스쿼시"는 너무 많은 수동 개입이 필요합니다. 스쿼시 대신 "픽스 업"을 사용하는 방법을 살펴 보았지만 커밋 메시지를 잃고 싶지는 않습니다.
아이디어가 있으십니까?
나는 잘못 일 수는 있지만 여전히 해결되지는 않을 것입니다. "메시지 연결"문제. Autosquash는 스쿼시/픽스 업과 같지만 커밋 메시지를 기반으로합니다. – Nycto
사실, 아마도 filter-branch를 사용하고, rebase -autosquash에 대해 완전히 잊어 버릴 수 있습니다. – dublev
filter-branch에 대한 제안이 올바른 것으로 나타났습니다. "commit-filter"플래그를 사용하면 전체 repo에서 각 커밋을 처리 할 수 있습니다. 전달한 콜백 스크립트에서 메시지를 commit-tree 명령으로 파이프하여 커밋 메시지를 변경할 수 있습니다. skip_commit을 호출하여 현재 커밋을 다음 커밋으로 병합 할 수도 있습니다. – Nycto