2
나는 하나의 커밋으로 스쿼시하려고하는 많은 커밋을 가지고있다. 물론 모든 커밋에 대해 pick
을 squash
으로 바꿀 수는 있지만 수백 커밋이 있습니다. 자동으로이 작업을 수행 할 수있는 방법이 있습니까?많은 커밋을 자동으로 스쿼시하는 방법은 무엇입니까?
나는 하나의 커밋으로 스쿼시하려고하는 많은 커밋을 가지고있다. 물론 모든 커밋에 대해 pick
을 squash
으로 바꿀 수는 있지만 수백 커밋이 있습니다. 자동으로이 작업을 수행 할 수있는 방법이 있습니까?많은 커밋을 자동으로 스쿼시하는 방법은 무엇입니까?
당신이
커밋... - C1 - C2 - C3 - C4 - C5 <- HEAD
의 순서가 있고 작업 디렉토리의 상태를 유지하고 영역을 준비하는 동안 C1
에 지점을 재설정 할 수 있습니다, 하나의 커밋으로 C5
에 C2
스쿼시하려면, 그러면 다시 커밋합니다.
git reset --soft C1
git commit
이렇게하면 커밋 메시지를 다시 입력해야합니다. 물론 재설정하기 전에 git log
을 사용하고 유지하려는 커밋 메시지의 부분을 복사 할 수 있습니다.
master
브랜치의 단일 커밋 ontop으로 기능 브랜치를 채우려면 또 다른 옵션은 git merge
에 --squash
옵션을 사용하는 것입니다.
이 편집기 목록을 편집하는 데 사용중인 편집기는 무엇입니까? 아마도 전 세계 검색 및 대체 명령을 사용할 수 있습니다. 예를 들어 vim에서는': % s/pick/squash/g'을 사용할 수 있습니다. – Jonah
'GIT_SEQUENCE_EDITOR' 변수를 사용하면됩니다. http://stackoverflow.com/a/27697274/974186 –
커밋 메시지를 모두 보관 하시겠습니까? 새로운 커밋 메시지를 입력하는 데 신경 쓰지 않는다면 쉬운 방법이 있습니다. –