我在Git(版本2.10.1(Apple Git-78))中遇到了一個非常奇怪的問題。Git:設置merge.ff中斷快速向前合併
看來,如果我在本地repo配置中設置了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合併特徵'(允許快進而不是合併)會發現'master'的當前提示與'master'和'feature'的合併基礎相同,因此也能夠快進而不是合併。 – torek