[課題] fetchしてmergeした際に、コミットが1つ先行してしまう
git merge オプションの --ff, --no-ff, --ff-only の違い
https://yu8mada.com/2018/08/15/the-difference-between-the-git-merge-options-ff-no-ff-and-ff-only/
ファストフォワードマージとは
Git のファストフォワードマージとは, マージされるブランチの HEAD を
マージするブランチの先端にそのまま移動させるマージを指します.
ファストフォワードという言葉がテープを急いで先に進めるという意味のように,
ファストフォワードマージはマージコンフリクトが
一切発生しない素早いマージのためこのように呼ばれるのでしょう.
https://yu8mada.com/2018/08/15/what-is-a-fast-forward-merge-in-git/
non fast-forwardマージのメリット
マージの実行時に、non fast-forwardマージというオプションを指定することで、 fast-forwardマージが可能な場合でも新しくマージコミットを作成して合流させることもできます。 [https://backlog.com/ja/git-tutorial/stepup/04/]
仮にmasterにtopicAブランチをmergeしたとする。 fast-forwardであるmergeの場合mergeのコミットが発行されないため、 masterがその後更新されていった場合に topicAブランチで行われた作業を参照するのが面倒になる。 mergeの取り消しを行いたいと思った場合かなり面倒。 [https://qiita.com/nog/items/c79469afbf3e632f10a1]
結論
- 今まで通りnon fast-forwardマージを用いて、mergeコミットを残そう
(* fast-forwardマージを試すとすれば、Git-flowにおいてfeatureブランチからブランチを切る場合) - 1つ先行してしまうのは、マージコミットが作成されていたためであろう