ikuma-t.

登壇 登壇 検索

Gitでマージをdry-runする

はじめに

大きめの作業内容なのでトピックブランチを作っていたのですが、作業内容の大きさゆえに時間がかかってしまい、実際に main にマージする際に「果たしてこのブランチをマージして、デグレとかしないか?コンフリクト出てないからたぶん大丈夫だけど…」となりました。

git merge コマンドの--no-commitオプションを使用すると、実際に発生する差分をチェックすることができて便利だったのでメモしておきます。

結論

ローカルのブランチで

git merge --no-commit --no-ff ブランチ名

内容に問題なければ

git commit

すると、マージコミットが作られる(FastForward でも作られるので、こだわりがある場合は以下の abort で中止して、再度 git merge するのが吉)。

やっぱりこれマージしたらあかんわ、ならば

git merge --abort

これでマージのチェックのために一時的に追加されていたステージングエリアが元に戻る。


使用しているオプション

—no-commit

  • マージコミットを作成する直前に停止し、コミット内容を精査するためのオプション

—no-ff

  • --ffだと FastForward。つまり、一直線上にある場合にマージコミットが作成されない。
  • その反対でどんな関係にあろうとも、マージコミットを作成するオプション

—abort

  • マージ作業中の場合に、作業を中断してマージ前の状態に戻すためのオプション

参考

ikuma-t

ikuma-t

about

9割笑顔、1割 (´・ω・)