LoginSignup
12
8

More than 5 years have passed since last update.

gitで直近のcommitと2つ以上前のcommitをまとめる

Posted at

直近のcommitと1つ前のcommitをまとめるのはやったことあったけど、掲題の件をやりたくなったのは初めてなので。

シチュエーション

  1. Aの修正を行ってcommitした
  2. Bの修正を行ってcommitした
  3. Aの修正ミスに気づいて再修正してcommitした

1と3のcommitをまとめたい!

git rebaseだけでうまくいく

HEADの3つ前まで、つまり上記の1,2,3のcommitを全て対象にしてrebaseコマンドを叩く

git rebase -i HEAD~~~

すると

pick commit_no_1 commit_message
pick commit_no_2 commit_message
pick commit_no_3 commit_message

て感じの画面がエディタで開く。

当たり前なのかもしれないが、この画面でcommitの位置を変更することができる。
つまり、rebaseでcommitの時系列も変更できる。

今回は3を1にまとめたいので、

pick commit_no_1 commit_message
pick commit_no_3 commit_message
pick commit_no_2 commit_message

こうする。

そして

pick commit_no_1 commit_message
fixup commit_no_3 commit_message
pick commit_no_2 commit_message

としてやることで、commit_no_3が手前のcommit_no_1にまとめられる。

あとはpushすればいいだけ!
カンタン。

12
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
8