備忘録です。
###git rebase -i for squash
-
git rebase -i HEAD~N
orgit rebase -i [commitHash]
指定した数字によってHEADコミットから古い順で選ばれたコミットの数が決まります。直にコミットのハッシュを指定することも可能です。指定した一番古いコミットが選ばれたコミットに含まれます。 -
そうしたらこのようなまとめたコミットのVIMのファイルが出てくる。
pick d94e78 Prepare the workbench for feature Z --- older commit pick 4e9baa Cool implementation pick afb581 Fix this and that pick 643d0e Code cleanup pick 87871a I'm ready! pick 0c3317 Whoops, not yet... pick 871adf OK, feature Z is fully implemented --- newer commit
-
そこで一番古いコミットを選択し(PICK)、他のコミットをその一番古いコミットにまとめるわけです。
pick d94e78 Prepare the workbench for feature Z --- older commit squash 4e9baa Cool implementation squash afb581 Fix this and that squash 643d0e Code cleanup squash 87871a I'm ready! squash 0c3317 Whoops, not yet... squash 871adf OK, feature Z is fully implemented --- newer commit
-
次に出てくるテキストファイルでコミットのメッセージを編集することができます。(僕の場合一番新しいコミットのメッセージを残すだけ)
-
成功するためには必ずコミット履歴を書き換える必要になってくるのでここで
git push --force
を使います。(originに) -
以上です。