git ブランチの全コミットをまとめたい git merge –squash

gitコマンドシリーズです。

状況

  1. 作業ブランチで長く作業していてコミットの量が多くなった。このままmasterにマージするとmasterのコミットが散らかる&他の人のソースツリーにpull(283)みたいなでかい数字が出てびっくりする。
  2. コードレビューをしてもらうために変更をひとまとめにしておきたい。
  3. 分けるほどのコミットじゃなかった。

などなど。とにかくコミットまとめたい時です。

1,2,はちょっとしたマナーみたいなものなので率先してまとめていくといいのかなぁと最近思いました。まとめずにコードレビュー出すとちょっと迷惑(面倒)がかかるので特に気をつけましょう(先日の私)。

コマンド git merge –squash

コマンドは以下

これでneatBranchには一つのコミットだけが乗ります。

これをマスターのブランチにマージしたらマスターにはまとめたコミット一つとマージコミットの二つしか残らないというわけです。めでたしめでたし。

ただsquashしてまとめられたコミットの中の一つだけrevertしたいといった状況が発生したらどうするんだろうっていうのが少し心配なんですよね。

どうするんでしょう?

まあそもそも機能ごとに適切にブランチ分けていたらその中の一部だけなかったことにしたいなんてことは滅多にないのかもしれないですね(実際今までなかった気がする)。

皆さんはどうしているのか、そもそもまとめていないとかそういう話あったら是非教えてください。お待ちしています。

追記

まとめたコミットの中に残っているCommitIdを使えば普通にrevertできました!

チェリーピックもできます。

まあそりゃそうですよね。安心です。

ガンガンまとめていきましょう。

以上でした。

ではまた。

にほんブログ村 IT技術ブログへ
スポンサーリンク

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です