Git(バージョン2.10.1(Apple Git-78))で非常に奇妙な問題が発生しました。Git:merge.ffを設定すると、早送りマージが永久に中断されます
ローカルリポジトリ設定でmerge.ff
〜false
を一度設定した場合、このレポの返信方法はありません。私はそれを解除できません。ここで
は再現する手順は、次のとおりです
git init
# Set merge.ff
git config --add merge.ff false
# Add some content and commit.
echo '.' >> file.txt
git add file.txt
git commit -am "commit"
# Create a new branch.
git branch feature
git checkout feature
echo '.' >> file.txt
git commit -am "commit"
git checkout master
git merge feature
このマージメッセージでコミット作成 - 予想通り。
私はこの設定を解除しました。将来の早送りコミットは余分なコミットを作成しないと考えています。しかし驚くべきことに、それはうまくいきません。
git config --unset-all merge.ff
git checkout feature
echo '.' >> file.txt
git commit -am "commit"
git checkout master
git merge feature
そこにはmerge.ff
設定がされていないので、デフォルトが適用されなければならないので、私は、このマージコミットを作成するべきではないと仮定と思います。しかし、コミットが作成されます。
私が望むもの:私のレポで早送りコミットをもう一度行います。これを得る方法はありますか?
あなたの返事をありがとう。しかし私が理解できないこと: 'git config --add merge.ff false'と' --unset-all merge.ff'を省いた場合、これらのマージ*は全て早送りです。どうして? –
最初のopが早送りの場合、マージコミットは作成されません。上のグラフを見てください。マージベース 'c12b7b3'より前の' master'にあるコミット自体が 'master'で行ったマージコミットです。 'master'でマージコミットをしない場合(早送り非マージを行う場合)、' master'という名前は 'c12b7b3'を指し、その後の' git merge feature'(マージの代わりに早送りが許可されていると)、 'master'の現在のtipは' master'と 'feature'のマージベースと同じであるため、マージの代わりに早送りすることができます。 – torek