を使用するときは git に常にマージ コミット ( --no-ff
)を作成させたいgit merge
のですが--ff
、git pull
. これは可能ですか(構成で)?
2 に答える
これが私の暫定的なワークフローです ( pull.ff
config オプションは git 2.x でのみ機能することに注意してください)。
この構成を使用します。
- に設定
merge.ff
しfalse
ます。これにより、デフォルトのmerge
動作が になり--no-ff
ます。 - に設定
pull.ff
しonly
ます。これにより、デフォルトのpull
動作が になり--ff-only
ます。
つまりpull
、ローカルがリモートの前後にあるブランチにアクセスしようとするpull
と、失敗します。その場合は、rebase
これ以上遅れないように a を実行してください。
ノート:
に設定しようとしpull.ff
ましtrue
たが、git はオプションが完全に設定されていないかのように扱っているようです。man ページには、それtrue
が認識されている値であるとは記載されていないことに注意してください。
役立つ可能性のある2つの構成は次のとおりです。
merge.ff
( git merge
man ページから):false
この変数を に設定すると、このような場合に追加のマージ コミットを作成するように Git に指示します (--no-ff
コマンド ラインからオプションを指定するのと同じです)。
pull.ff
に設定pull.ff
するtrue
と、現在のコミットの子孫であるコミットをマージするときに、Git が追加のマージ コミットを作成しないデフォルトの動作が維持されます。
テストする: よりもpull.ff
優先されmerge.ff
ますか?
git config pull.ff only
git config merge.ff false
Kelvinの回答で言及され、によって確認されたgit-pull.sh
ように、「only
」は使用する値であり、「 」ではありませんtrue
。