Git annulla il tentativo di unione


92

Ho la directory di lavoro (# 1) che contiene la directory del fornitore (# 2). C'è una dipendenza che volevo estrarre manualmente senza composer (versione php di npm / gem). Stavo lavorando in # 1, non ho salvato / confermato le modifiche, quando ho deciso di aggiornare la libreria in # 2. Sono passato a vendor / myname e ho eseguito git pull repository.

Sfortunatamente ha iniziato a tirare e unire al numero 1, invece di creare una nuova directory nella cartella del fornitore.

Adesso ho:

  • # 1 cartella con le mie modifiche
  • # 1 cartella con i file che non voglio dal repository sbagliato
  • # 1 unisci conflitti come composer.json, Readme.md ... (file generali)

Voglio "annullare" questo ultimo git pull senza perdere le modifiche che ho fatto alla cartella # 1. Come posso fare questo?


Git impedisce il pull o l'unione se ci sono modifiche non salvate, sei sicuro che questo sia ciò che è successo?
CharlesB

1
@CharlesB L'unione è stata interrotta, i progetti non vengono uniti. Non so nulla di git che previene prima di tirare ...
ewooycom

Risposte:


172

git merge --abort potrebbe essere quello che stai cercando.


6
Nelle versioni precedenti di git: git reset --merge
razz0

Funziona, ma inutilmente non ti dice nulla. Fare una git statusper confermare.
aliteralmind

18

Git moderno:

git merge --abort

Più vecchio:

git reset --merge

Vecchia scuola (avviso: annullerà tutte le modifiche locali):

git reset --hard

Ma in realtà, vale la pena notare che git merge --abortè equivalente solo a git reset --mergedato che MERGE_HEADè presente. Questo può essere letto nella guida di git per il comando di unione.

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

Dopo un'unione non riuscita, quando non c'è MERGE_HEAD, l'unione non riuscita può essere annullata con git reset --mergema non necessariamente con git merge --abort, quindi non sono solo vecchia e nuova sintassi per la stessa cosa . Personalmente trovo git reset --mergemolto più utile nel lavoro di tutti i giorni.


2

Con Git 2.10 (Q3 2016) saprai cosa fare, perché git statusti proporrà l' git merge --abortopzione.

Vedere commit b0a61ab (21 luglio 2016) di Matthieu Moy ( moy) .
(Fuso da Junio ​​C Hamano - gitster- nel commit 5a2f4d3 , 03 agosto 2016)

status: suggest ' git merge --abort' quando appropriato

Suggeriamo già ' git rebase --abort' durante un rebase in conflitto.
Allo stesso modo, suggerisci " git merge --abortdurante la risoluzione del conflitto su git merge".

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.