備忘録。
--ff
デフォルト設定。オプションに何も指定しない場合は、このオプションが適用される。
ff
はfast-foward
の略。
gitでいうところの「fast-forward
な関係」とは、二つのブランチが同じ線上にある状態のこと。
つまり、ブランチAがブランチBの延長線上にあり二つが枝別れしていない状態のことを指す。
$ git merge --ff {branch_name}
マージする二つのブランチがfast-forward
な関係の場合、マージコミットは作られない。マージ元ブランチのheadがマージ先ブランチのheadに移動するだけ。
二つのブランチがfast-forward
な関係でない場合は、マージコミットが作られる。
--no-ff
$ git merge --no-ff {branch_name}
マージする二つのブランチがfast-forward
な関係であってもそうでなくても、必ずマージコミットが作られる。
--squash
$ git merge --squash {branch_name}
マージする二つのブランチがfast-forward
な関係であってもそうでなくても、マージコミットは作られない。
ワークツリーとインデックスのみ、マージ元ブランチの変更分がすべて取り込まれた状態になる。
トピックブランチのコミットを一つにまとめたい場合などに使う。