2016-04-02 9 views
2

Abbruchs ist meine Situation:ein git merge und geht zurück auf uncommitted Arbeit

ich vergaß zu ziehen, und ich begann an meinem Projekt arbeiten. Woran ich heute Morgen gearbeitet habe, ist völlig anders als bei meiner letzten Aufgabe in diesem Repository.

Ich mache ein Commit und ich bin aufgefordert zu ziehen, das ist, als ich erkannte, dass ich eine Lawine von unlösbaren Konflikten haben werde.

ich ziehe und mein Projekt ist jetzt alles durcheinander. Gibt es eine Möglichkeit, zu der Arbeit zurückzukehren, die ich vor dem Ziehen ausgeführt habe?

nicht zu meinem letzten Commit zurück, weil ich die ganze Arbeit verlieren würde, die ich heute getan habe, aber einfach die ganze Unordnung verstauen und vor 5 Minuten zurückgehen?

+0

Vielleicht sollten Sie die Ausgabe von 'git status' veröffentlichen, damit wir einen Überblick über die Situation bekommen können. –

+0

Oh, und Sie bekommen keine Aufforderung, nach dem Commit zu ziehen. Dies geschieht nur, wenn Sie drücken. –

+0

@BeatBolli Ich kenne die Dateien, die Konflikte haben. Das Problem ist, dass sie sehr schwer zu lösen sind. Deshalb möchte ich zurück zur unverbindlichen Arbeit gehen:/ – valerio0999

Antwort

2

Zuerst brechen Sie den unvollendeten merge:

git merge --abort 

Dann rückgängig machen Ihre letzten Commit (derjenige, der zu den Konflikten führt):

git reset HEAD^ 

Diese Änderungen Blätter, die Sie in der tat Commit im Arbeitsbaum, so können Sie einfach weiter bearbeiten.

+0

git merge --abort hat funktioniert! Ich bin jetzt zurück zu dem, an dem ich heute Morgen gearbeitet habe. Sollte ich auch HEAD^zurücksetzen? Könntest du diesen Teil ein bisschen mehr erklären? ich will das nicht durcheinander bringen :) – valerio0999

+0

Sie haben nun drei Möglichkeiten: 'git reset HEAD ^' mache nur das Commit rückgängig; Fügen Sie weitere Änderungen hinzu und führen Sie 'git commit --amend' aus, um das letzte Commit zu ändern. oder fügen Sie weitere Änderungen hinzu und binden Sie sie separat ein. –

+0

'git reset HEAD ^' löscht einfach das Commit, behält aber die Änderungen bei, die Sie im Quellcode festgeschrieben haben. –