をマージ使用する場合、デフォルトとして何の「早送り」を設定していない方法: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
リンク:http://git-scm.com/docs/git-configを実行します。 –
しかし、 'git pull'(--rebaseなし)はマージを行っているので、(通常は不要な)マージコミットを作成することに注意してください。 – michas
奇妙なことに、私は "git merb mybranch"を使うと早送りすることはできません。 --ffオプションを使用すると、早送りします。奇妙なのは、merge.ffがどのレベルでもオフにならないことがあるため、--no-ffが私にとってはデフォルトの動作であるようです。しかし--ffはデフォルトであるはずです:https://git-scm.com/docs/git-merge#git-merge---ff。誰も手がかりを得た? – Sean