備忘録。
--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な関係であってもそうでなくても、マージコミットは作られない。
ワークツリーとインデックスのみ、マージ元ブランチの変更分がすべて取り込まれた状態になる。
トピックブランチのコミットを一つにまとめたい場合などに使う。