1. ホーム
  2. git

[解決済み] git merge` で `--no-ff` フラグはどのような効果がありますか?

2022-03-19 06:53:30

質問

使用方法 gitk log の効果の違いを見出すことはできませんでした。 git mergegit merge --no-ff . その違いを観察するにはどうしたらよいでしょうか(gitコマンドや何らかのツールで)。

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

その --no-ff フラグにより git merge を検出した場合、早送りを実行します。 HEAD は、マージしようとするコミットの先祖にあたります。fast-forward とは、マージコミットを作成する代わりに、ブランチポインタを移動してそのコミットを指すようにすることです。これは一般に git pull ローカルに変更を加えることなく

たとえば、特定のブランチのトポロジーを維持したい場合などです (例: トピックブランチをマージして、履歴を読むときにそのように見えるようにしたい場合など)。このような場合は --no-ff フラグと git merge 意志 常に は、早送りの代わりにマージを構築します。

同様に git pull を使用するか git merge を明示的に早送りするために、早送りができない場合はベールアウトしたい場合は --ff-only フラグを使用します。こうすることで、定期的に次のようなことができるようになります。 git pull --ff-only そして、もしエラーになったら、マージするかリベースするかを決めればいいのです。