1. ホーム
  2. ギット

[解決済み】Gitの早送り VS 早送りなしのマージ

2022-03-27 01:37:07

質問

Git マージでは、ブランチのマージを高速で進めることと、高速で進めないことを実行できます。 どのような場合にfast forward mergeを使い、どのような場合にno fast forward mergeを使うのか、何かアイデアはありますか?

どのように解決するのですか?

その --no-ff オプションは、機能ブランチを明確に把握したい場合に便利です。つまり、たとえその間に何のコミットも行われなかったとしても、FF は可能です。メインライン上の各コミットがひとつの機能に対応するようにしたい場合もあるでしょう。そこで、複数のコミットが存在する機能ブランチをひとつの単位として扱い、それらをマージするのです。機能ブランチのマージを行う際に --no-ff .

そういうことを気にしないのであれば、可能な限りFFで済ませることもできるかもしれません。そのほうが、よりsvnらしいワークフローを実現できるはずです。

例えば、この作者は 記事 は、次のように考えています。 --no-ff をデフォルトとすべきであり、その理由は私が上で説明したものとほぼ同じである。

feature"ブランチでの一連のマイナーコミットが、まとめて一つの新機能を作るという状況を考えてみましょう。を使わずに "git merge feature_branch" とだけ実行した場合は、次のようになります。 --no-ff Git の歴史から、どのコミットオブジェクトが機能を実装したのかを知ることはできません。機能全体 (つまりコミット群) を取り消すのは、本当に頭痛の種です [if --no-ff を使用しない場合]は、簡単に行えますが --no-ff フラグが使用されていました[1回のコミットなので]."。