이것은 여러 커밋을 스쿼시하는 것에 대한 좋은 설명을 제공합니다.
http://git-scm.com/book/en/Git-Branching-Rebasing
그러나 이미 푸시 된 커밋에는 작동하지 않습니다. 로컬 및 원격 저장소에서 가장 최근의 커밋을 어떻게 스쿼시합니까?
편집 : 내가 할 때 git rebase -i origin/master~4 master
첫 번째를로 유지하고 pick
다른 세 개를로 설정 squash
한 다음 종료하십시오 (emacs의 cx cc를 통해).
$ git rebase -i origin/master~4 master
# Not currently on any branch.
nothing to commit (working directory clean)
Could not apply 2f40e2c... Revert "issue 4427: bpf device permission change option added"
$ git rebase -i origin/master~4 master
Interactive rebase already started
여기서 2f40은 pick
커밋입니다. 그리고 이제 4 개의 커밋 중 어느 것도에 나타나지 않습니다 git log
. 커밋 메시지를 입력 할 수 있도록 편집기를 다시 시작해야했습니다. 내가 무엇을 잘못하고 있지?
git push --force origin master