2013-05-09 11 views
19

をマージ使用する場合、デフォルトとして何の「早送り」を設定していない方法:Gitは<a href="http://git-scm.com/book/en/Git-Branching-Basic-Branching-and-Merging">git book</a>から

あなたはそのマージで「早送り」というフレーズに気付くでしょう。マージしたブランチが指しているコミットは、自分がコミットしているコミットメントのすぐ上流にあったため、Gitはポインタを前方に移動させます。別の言い方をすれば、あるコミットを最初のコミットの履歴に従うことで到達できるコミットとマージしようとするとき、Gitはマージする相違する作業がないのでポインタを前方に動かすことによって物事を単純化します。これは "早送り"。

しかし、この「早送り」の副作用は、複数のコミットを持つ機能ブランチがある場合、マージバックするときに履歴のコンテキストを失うことです。言い換えれば、コミットはこのフィーチャーの一部として一緒にグループ化されることはありません。

with fast forward:  x---x---x---x---x---x---x 

without fast forward: x---x---x   x---x---x---x 
           \x--x--x/ 

マニュアルの方法は、git merge --no-ffにある

誰もがデフォルトとしてこれを設定する方法を知っていますか? falseに設定変数を設定しmerge.ff

答えて

35

:関連Gitのドキュメントに(現在のプロジェクトへの影響を制限するために--globalなし)

git config --global merge.ff false 

+0

リンク:http://git-scm.com/docs/git-configを実行します。 –

+4

しかし、 'git pull'(--rebaseなし)はマージを行っているので、(通常は不要な)マージコミットを作成することに注意してください。 – michas

+0

奇妙なことに、私は "git merb mybranch"を使うと早送りすることはできません。 --ffオプションを使用すると、早送りします。奇妙なのは、merge.ffがどのレベルでもオフにならないことがあるため、--no-ffが私にとってはデフォルトの動作であるようです。しかし--ffはデフォルトであるはずです:https://git-scm.com/docs/git-merge#git-merge---ff。誰も手がかりを得た? – Sean

関連する問題