git merge
ではなくgit rebase
を使用し、notコミットを表示したいときを考えることはできません。デフォルトで高速転送をオフにするようにgitを設定する方法はありますか? --ff
オプションがあるという事実は、方法があることを暗示しているように見えますが、ドキュメントで見つけることができないようです。
はい、--no-ff
があります。ブランチごとにマージオプションを設定できます。
git config branch.master.mergeoptions "--no-ff"
以下を$(REPO)/.git/config
ファイルに追加します。
[branch "master"]
mergeoptions = --no-ff
脚注:私の経験から言えば、最終的に早送りをオフにすることは、Gitの新規参入者にとって大いに役立つことに気づきました-しかし、ワークフローと概念の感覚が沈み始めたら、間違いなくロググラフが大量にぼやけることを避けたいと思います意味のない「マージされたリモート..blarf」タイプのコミット。
スレッドにはまだ保留中の質問があるようです:グローバルにそれを行う方法(つまり、すべてのブランチ)?レコードには、次のものを使用できます。
git config --add merge.ff false
...現在のリポジトリのすべてのブランチに適用されるようにします。 すべてのリポジトリのすべてのブランチに適用するには、誰かがnot--global
オプションなしで実行します(ローカル設定がグローバルをオーバーライドします)これを実行します:
git config --global --add merge.ff false
ドキュメント から:
merge.ff
デフォルトでは、現在のコミットの子孫であるコミットをマージするときに、gitは追加のマージコミットを作成しません。代わりに、現在のブランチの先端は早送りされます。 falseに設定すると、この変数はgitにそのような場合に追加のマージコミットを作成するように指示します(コマンドラインから--no-ff
オプションを指定するのと同じです)。のみに設定すると、このような早送りマージのみが許可されます(コマンドラインから--ff-only
オプションを指定するのと同等)。
回答のスレッドを読んで、次の2つのオプションを使用することになりました
git config --global pull.ff only # Disallows non ff merges on pull. Overrides merge.ff when pulling
git config --global merge.ff false # even create extra merge commit when fast forward merge would be possible
大まかに関連しているだけですが、この設定はプル中のトラブルを回避します
git config --global pull.rebase # set up pull to rebase instead of merge