2012-05-24 254 views
14

我正在嘗試從devel分支進行合併壁球進入主。撤消合併merge.renameLimit警告加衝突後的git合併

stefanos-imac:trunk borini$ git merge --squash devel 
CONFLICT (content): Merge conflict in test1 
warning: inexact rename detection was skipped due to too many files. 
warning: you may want to set your merge.renamelimit variable to at least 2224 and retry the command. 
Squash commit -- not updating HEAD 
Automatic merge failed; fix conflicts and then commit the result. 

不夠公平。

stefanos-imac:trunk borini$ git config merge.renameLimit 999999 

然後我試圖撤消合併,並具有較高的極限

stefanos-imac:trunk borini$ git merge --abort 
fatal: There is no merge to abort (MERGE_HEAD missing). 

好了重做,所以也許我必須這樣做,因爲它說,只是重新調用合併命令

stefanos-imac:trunk borini$ git merge --squash devel 
fatal: 'merge' is not possible because you have unmerged files. 
Please, fix them up in the work tree, and then use 'git add/rm <file>' as 
appropriate to mark resolution and make a commit, or use 'git commit -a'. 

哦,混帳,你爲什麼這樣的混帳?

更重要的是,有沒有人知道如何擺脫這種情況?

回答

23

Em,git reset --hard origin/master

4

git merge --abort也會訣竅。比輸入完整的git reset命令快一點。

Abort也可以使用rebasecherry-pick

+3

這個特殊情況清楚地表明merge - abort失敗了,我見過我自己。總是傷心地看到中止失敗:( – Brian

7

現代的方式撤消合併(但它只適用MERGE_HEAD存在):

git merge --abort 

而年齡稍大的方式,這將在這種情況下工作(MERGE_HEAD丟失):

git reset --merge 

中接受的答案描述老派的方式(警告:將放棄所有的本地修改):

git reset --hard 

因此,請注意git merge --abort只有等於git reset --merge,因爲MERGE_HEAD存在。這可以在合併命令的git幫助中讀取。

git merge --abort is equivalent to git reset --merge when MERGE_HEAD is present. 

失敗的合併後,當沒有MERGE_HEAD,失敗的合併可以用git reset --merge撤銷,但不一定與git merge --abort

+1

git reset --merge,這對我描述的MERGE_HEAD缺失。 –