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?


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.


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.


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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.