2012-05-24 6 views
14

J'essaye de faire une fusion de squash d'une branche de Devel dans le maître.Annulation de la fusion Git après Merge.renameLimit avertissement plus conflits

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. 

assez juste.

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

Puis-je essayer de défaire la fusion et le refaire avec la plus limite

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

Ok, j'ai alors peut-être faire comme il est dit et juste en relançant la commande de fusion

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'. 

oh git, pourquoi êtes-vous un tel git? Plus précisément, est-ce que quelqu'un sait comment sortir de cette situation?

Répondre

23

Em, git reset --hard origin/master?

4

git merge --abort fera également l'affaire. Un peu plus rapide que de taper la commande git reset complète. Abort fonctionne également avec rebase et cherry-pick.

+3

ce cas particulier indique clairement que la fusion -abort échoue, ce que j'ai vu moi-même. Toujours triste de voir l'échec échouer :( – Brian

7

La façon moderne pour annuler une fusion est (mais cela ne fonctionne que si MERGE_HEAD est présent):

git merge --abort 

Et la manière un peu plus, qui travaillera dans ce cas (MERGE_HEAD manque):

git reset --merge 

l'ancienne école décrite en réponse acceptée (avertissement: annulera toutes les modifications locales):

git reset --hard 

Notez donc que git merge --abort est seulement équivalent à git reset --merge étant donné que MERGE_HEAD est présent. Cela peut être lu dans la commande git help for merge.

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

Après une fusion a échoué, quand il n'y a pas MERGE_HEAD, la fusion a échoué peut être annulée avec git reset --merge mais pas nécessairement avec git merge --abort.

+1

git reset --merge, cela fonctionne pour moi pour le MERGE_HEAD décrit est manquant. –

Questions connexes