web-dev-qa-db-fra.com

Git annuler la tentative de fusion

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

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

Maintenant j'ai:

  • Dossier n ° 1 avec mes modifications
  • # 1 dossier avec des fichiers que je ne veux pas d'un mauvais référentiel
  • # 1 Fusionnez les conflits tels que composer.json, Readme.md ... (fichiers généraux)

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

75
ewooycom

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

148
aragaer

Git moderne:

git merge --abort

Plus âgée:

git reset --merge

Old-school (avertissement: supprimera toutes vos modifications locales):

git reset --hard

Mais en fait, il convient de noter que git merge --abort n'est équivalent qu'à 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 l'échec d'une fusion, lorsqu'il n'y a pas de MERGE_HEAD, la fusion ayant échoué peut être annulée avec git reset --merge mais pas nécessairement avec git merge --abort, donc ce ne sont pas seulement une ancienne et une nouvelle syntaxe pour la même chose. Personnellement, je trouve git reset --merge beaucoup plus utile dans le travail quotidien.

16
Martin G

Avec Git 2.10 (Q3 2016), vous saurez quoi faire, car git status proposera le git merge --abort option.

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

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

Nous suggérons déjà 'git rebase --abort 'lors d'un rebasage en conflit.
De même, suggérez "git merge --abort 'pendant la résolution du conflit sur' git merge '.

1
VonC