284

コミットを表示したくないgit mergeのではなく、git rebase使用するときのことを本当に考えることはできません。デフォルトで早送りをオフにするようにgitを構成する方法はありますか?オプションがあるという事実は、方法があることを意味しているように見えますが、私はそれをドキュメントで見つけることができないようです。--ff

4

3 に答える 3

363

スレッドにはまだ保留中の質問があるようです: グローバルに (つまり、すべてのブランチに対して) 行う方法は? 記録には、以下を使用できます。

git config --add merge.ff false

...現在のリポジトリのすべてのブランチに適用します。オプションなしで誰かが実行していないすべてのリポジトリのすべてのブランチに適用するには(ローカル設定がグローバルをオーバーライドします)、次を実行します。--global

git config --global --add merge.ff false

ドキュメントから:

merge.ff
デフォルトでは、現在のコミットの子孫であるコミットをマージするときに、git は追加のマージ コミットを作成しません。代わりに、現在のブランチの先端が早送りされます。false に設定すると、この変数は、そのような場合に追加のマージ コミットを作成するように git に指示します (--no-ffコマンド ラインからオプションを指定するのと同じです)。only に設定すると、そのような早送りマージのみが許可されます (--ff-onlyコマンド ラインからオプションを指定するのと同じです)。

于 2011-07-25T00:21:45.817 に答える
298

はい、あります--no-ff。ブランチごとにマージ オプションを設定できます。

git config branch.master.mergeoptions  "--no-ff"

$(REPO)/.git/config以下をファイルに追加します。

[branch "master"]
    mergeoptions = --no-ff

脚注: 私の経験について言えば、早送りをオフに切り替えることは git の初心者にとって最も役立つことが最終的にわかりました。リモート ..blarf' タイプのコミット。

脚注 2、10 年後: 以下の他の回答はより最新の構成オプションを提供しますが、実際には、空のマージコミットは実際には歴史を推論することをはるかに困難にします。

于 2010-03-23T13:58:18.070 に答える