2012-05-24 18 views
14

develブランチからマスターにマージスカッシュを実行しようとしています。merge.renameLimit警告+競合後にgit mergeを元に戻す

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 --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'. 
を再呼び出し、マージを元に戻すと、上限

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

[OK]をクリックして、それをやり直してみてください

ああ、なぜあなたはそんなに悪いですか?

さらに、このような状況から抜け出す方法を知っている人はいますか?

答えて

23

Em、git reset --hard origin/master

4

git merge --abortでもやります。完全なgit resetコマンドを入力するよりも少し速いです。

アボートも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コマンドのgitヘルプで読むことができます。何MERGE_HEADがないときに失敗したマージ後

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

、失敗したマージは git reset --mergeで元に戻すことができますが、必ずしも git merge --abortと。

+1

git reset --merge、これは私のためにMERGE_HEADが存在しないために動作します。 –

関連する問題