LoginSignup
28
19

More than 5 years have passed since last update.

マージコミットのあるブランチでのgit rebaseには-pオプションを付ける

Posted at

僕の会社ではmasterブランチからtopicブランチをきって開発を行っています。
topicブランチにmasterの差分を取り入れたいときは、mergeではなくrebaseで行うよう推奨しているのですが、稀にmergeでmasterの変更を取り入れてしまう人がいて、topicブランチにmasterブランチからのマージコミットログが残っています。

masterのHEADにマージコミットがある場合はgit reset等を使って、マージコミットをなかった事にしてもらっているのですが、

例)

master
|  topic
|   |
|  ○
| / |
○  ○
|  |
○  ○
| /

masterのマージコミットの上にさらにtopicブランチでの開発をすすめている場合は、修正が厄介です。

例)

master
|  topic
|  |
|  ○ C4
|  |
|  ○ C3
| / |
○  ○ C2
|  |
○  ○ C1
| /

そういう時はgit resetでの修正も面倒になってくるので、以下のようにgit rebase -iに-pオプションをつけて実行して解決します。

git rebase -i -p ${消したいマージコミットハッシュの一つ前のコミット}
※git rebaseで指定するマージコミットのハッシュは上の例の場合はC2のハッシュを指定します。

エディタでマージコミットの行を削除すればマージはなかった事になります。

ほかにいい方法があれば教えてほしいですが、今の所ベストな解決方法かなと思っています。

28
19
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
28
19