Programing

Git에서 커밋 그룹을 하나로 축소

lottogame 2020. 11. 24. 07:30
반응형

Git에서 커밋 그룹을 하나로 축소


나는 엄청난 수의 작은 커밋을 만드는 습관이 있으며 괜찮습니다. 그러나 나는 때때로 이러한 선형 커밋을 여러 개 가져 와서 새 커밋 메시지를 작성할 수있는 하나의 커밋으로 함께 축소하고 싶습니다.

나는 문서를 살펴 봤지만 나에게 약간의 비밀스러워 보였다. 아무도 그 방법을 알고 있습니까?


commit까지 (포함하지 않음) 되돌아가는 트리의 히스토리를 다시 작성한다고 가정 해보십시오 a739b0d.

export EDITOR=vim # or your favorite editor
git rebase a739b0d --interactive

먼저 대화 형 리베이스 에 대해 읽어보십시오 .


기존 커밋 메시지를 유지하는 데 신경 쓰지 않는다고 가정하면 사용할 수있는 멋지고 빠른 git 레시피가 있습니다. 먼저 브랜치가 체크 아웃되었는지 확인하세요.

git checkout <branch-to-squash>

안전을 위해 현재 커밋에 태그를 지정합니다.

git tag my-branch-backup

다음으로, 브랜치 HEAD를 작업 공간이나 인덱스를 수정하지 않고 마지막으로 좋은 커밋으로 다시 이동합니다. 편집 : 마지막 좋은 커밋은 유지하려는 분기의 가장 최근 커밋입니다.

git reset --soft <last-good-commit>

를 사용하면 git status기능 브랜치의 모든 변경 사항이 이제 준비되었음을 알 수 있습니다. 남은 일은 ...

git commit

이 방법은 길고 복잡한 git 히스토리와 gnarly merge를 통합하는 데 유용합니다. 또한 해결해야 할 병합 / 리베이스 충돌이 없습니다!

이제 기존 커밋 메시지를 유지하거나 위에서 허용하는 것보다 더 멋진 작업을 수행해야하는 경우 git rebase --interactive.

솔루션 파생 : http://makandracards.com/makandra/527-squash-several-git-commits-into-a-single-commit

참조 : http://git-scm.com/docs/git-reset

참조 : http://git-scm.com/docs/git-rebase


명령을 사용하여 마지막 안정적 커밋의 SHA입니다.git rebase -i <commit><commit>

대화 형 rebase 명령에 대한 인수로 포함 pick했기 때문에 각 커밋 옆에 있는 레이블 바꿀 수있는 편집기로 이동합니다 <commit>. 명령에 당신은에 무너 시작 바꾸려 pick으로 reword, 각 당신이 그것으로 붕괴하고자하는 그 후 커밋에 대한 교체 pick와 함께 fixup. 저장하면 새 커밋 메시지를 제공 할 수 있습니다.


다음을 사용하여 원하는 수의 커밋을 하나의 커밋으로 스쿼시 할 수 있습니다.

git rebase --interactive <commit>

참고 URL : https://stackoverflow.com/questions/6884022/collapsing-a-group-of-commits-into-one-on-git

반응형