Git macht den Zusammenführungsversuch rückgängig

87

Ich habe ein Arbeitsverzeichnis (Nr. 1), in dem sich das Herstellerverzeichnis (Nr. 2) befindet. Es gibt eine Abhängigkeit, die ich ohne Composer manuell ziehen wollte (PHP-Version von npm / gem). Ich habe in # 1 gearbeitet, keine Änderungen gespeichert / festgeschrieben, als ich beschlossen habe, die Bibliothek in # 2 zu aktualisieren. Ich habe zu Vendor / Myname navigiert und das Git Pull Repository erstellt.

Leider begann es zu ziehen und zu # 1 zusammenzuführen, anstatt ein neues Verzeichnis im Herstellerordner zu erstellen.

Jetzt habe ich:

  • # 1 Ordner mit meinen Änderungen
  • # 1 Ordner mit Dateien, die ich nicht aus einem falschen Repository haben möchte
  • # 1 Zusammenführungskonflikte wie composer.json, Readme.md ... (allgemeine Dateien)

Ich möchte diesen letzten Git-Pull "rückgängig machen", ohne die Änderungen zu verlieren, die ich an Ordner 1 vorgenommen habe. Wie kann ich das machen?

ewooycom
quelle
Git verhindert das Ziehen oder Zusammenführen, wenn nicht festgeschriebene Änderungen vorliegen. Sind Sie sicher, dass dies der Fall ist?
CharlesB
1
@CharlesB Die Zusammenführung wurde abgebrochen, Projekte werden nicht zusammengeführt. Ich weiß nichts über Git-Verhinderung vor dem Ziehen ...
Ewooycom

Antworten:

166

git merge --abort könnte das sein, wonach Sie suchen.

Aragaer
quelle
6
In älteren Git-Versionen: Git Reset --merge
Razz0
Es funktioniert, sagt aber nicht hilfreich nichts. Machen Sie eine git statusBestätigung.-
Aliteralmind
17

Modern Git:

git merge --abort

Älter:

git reset --merge

Old-School (Warnung: Alle lokalen Änderungen werden verworfen):

git reset --hard

Aber eigentlich ist es wert , zu bemerken , dass git merge --abortnur äquivalent ist git reset --mergeda MERGE_HEADvorhanden ist. Dies kann in der Git-Hilfe zum Zusammenführen gelesen werden.

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

Nach einer fehlgeschlagenen Zusammenführung kann MERGE_HEADdie fehlgeschlagene Zusammenführung rückgängig gemacht werden, git reset --mergejedoch nicht unbedingt mit git merge --abort. Daher handelt es sich nicht nur um alte und neue Syntax für dieselbe Sache . Persönlich finde ich git reset --mergeviel nützlicher in der täglichen Arbeit.

Martin G.
quelle
2

Mit Git 2.10 (Q3 2016) wissen Sie, was zu tun ist, da Sie git statusdie git merge --abortOption vorschlagen werden .

Siehe Commit b0a61ab (21. Juli 2016) von Matthieu Moy ( moy) .
(Zusammengeführt von Junio ​​C Hamano - gitster- in Commit 5a2f4d3 , 03. August 2016)

status: schlagen ' git merge --abort' vor, wenn angebracht

Wir schlagen bereits ' git rebase --abort' während einer konfliktreichen Rebase vor.
Schlagen Sie in ähnlicher Weise git merge --abortwährend der Konfliktlösung " git merge" vor.

VonC
quelle