Git annuler la tentative de fusion


88

J'ai le répertoire de travail (# 1) qui contient le répertoire du fournisseur (# 2). Il y a une dépendance que je voulais extraire manuellement sans composer (version php de npm / gem). Je travaillais dans le n ° 1, je n'ai pas enregistré / validé les modifications, lorsque j'ai décidé de mettre à jour la bibliothèque dans le n ° 2. J'ai navigué vers vendor / myname, et ai fait git pull repository.

Malheureusement, il a commencé à tirer et à fusionner vers le n ° 1, au lieu de créer un nouveau répertoire dans le dossier du fournisseur.

Maintenant j'ai:

  • Dossier n ° 1 avec mes modifications
  • Dossier n ° 1 avec des fichiers que je ne veux pas du mauvais référentiel
  • # 1 conflits de fusion tels que composer.json, Readme.md ... (fichiers généraux)

Je veux "annuler" ce dernier git pull sans perdre les modifications que j'ai apportées au dossier n ° 1. Comment puis-je faire ceci?


Git empêche l'extraction ou la fusion s'il y a des changements non validés, êtes-vous sûr que c'est ce qui s'est passé?
CharlesB

1
@CharlesB Il a interrompu la fusion, les projets ne sont pas fusionnés par jet. Je ne sais rien sur git empêchant avant de tirer ...
ewooycom

Réponses:


168

git merge --abort pourrait être ce que vous recherchez.


6
Dans les anciennes versions de git: git reset --merge
razz0

Cela fonctionne, mais ne vous dit rien. Faites un git statuspour confirmer.-
aliteralmind

17

Git moderne:

git merge --abort

Plus âgée:

git reset --merge

Old-school (avertissement: supprimera tous vos changements locaux):

git reset --hard

Mais en fait, il vaut la peine de noter que cela git merge --abortéquivaut uniquement à ce git reset --mergequi MERGE_HEADest présent. Cela peut être lu dans l'aide de git pour la commande de fusion.

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

Après un échec de fusion, quand il n'y en a pas MERGE_HEAD, la fusion échouée peut être annulée avec git reset --mergemais pas nécessairement avec git merge --abort, de sorte qu'il ne s'agit pas seulement d'une ancienne et d'une nouvelle syntaxe pour la même chose . Personnellement, je trouve git reset --mergebeaucoup plus utile dans le travail quotidien.


2

Avec Git 2.10 (Q3 2016), vous saurez quoi faire, car vous git statusproposerez l' git merge --abortoption.

Voir commit b0a61ab (21 juillet 2016) par Matthieu Moy ( moy) .
(Fusionné par Junio ​​C Hamano - gitster- in commit 5a2f4d3 , 03 août 2016)

status: suggérer ' git merge --abort' le cas échéant

Nous suggérons déjà ' git rebase --abort' lors d'un rebase en conflit.
De même, suggérez « git merge --abortpendant la résolution de conflit sur git merge».

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.