【Git】mergeで「fast-forward」の場合はマージコミットが作成されない

内容

「fast-forword」の場合はマージコミットは作成されません。
「fast-forword」でマージコミットを作成したい場合は「–no-ff」のオプションをつけることで可能になります。

実践

ブランチが「master」、「feature」の2つがある状態にし、featureブランチにて2つコミットを作成します。
masterブランチにfeatureブランチをmergeします。

すると以下の様にマージコミットは作成されません

再度同じようにfeatureブランチでコミットし、masteブランチで以下のmergeコマンド実行します。

git merge --no-ff feature

すると以下の様にマージコミット作成されます。

メリット

マージコミットが存在することで、マージを取り消したい場合に便利です。
マージコミットが存在しない場合は対象コミットを全てを取り消す必要がありますが、存在する場合はマージコミットのみを指定することで取り消すことが可能となります。
(取り消すコマンドは「reset」や「revert」があります。)

参考文献

Git - git-merge Documentation
タイトルとURLをコピーしました