Was ist der richtige Weg, um eine Umbenennung in git rückgängig zu machen?
git mv file1 file2
Was ist der richtige Weg, um eine Umbenennung in git rückgängig zu machen?
git mv file1 file2
Antworten:
Nicht freche Antwort:
git mv file2 file1
Aktualisiert den Index für alte und neue Pfade automatisch.
Überprüfen Sie die Dokumentation von git mv
git checkout .
funktioniert das dann nicht, selbst mit der -f
Option?
git checkout -- .
.
fatal: source directory is empty,
, hat nur git reset --hard
den Job gemacht.
Wenn Sie seit dem letzten Festschreiben keine weiteren Änderungen vorgenommen haben (die Sie beibehalten möchten), können Sie dies tun
git reset --hard
git reset --hard
. Nur rückwärts zu bewegen scheint mir eine sicherere Option zu sein.
In meinem Fall habe ich einen ganzen Ordner verschoben und dann festgestellt, dass ich das nicht hätte tun sollen.
Die Antwort von @Dave Konopka hat mir sehr gut gefallen, aber ich hatte mit diesem Ansatz nicht viel Erfolg (vielleicht meine Version von GIT (1.8.4)? Meine Dateien wurden immer noch als gelöscht angezeigt. Ich hatte andere Änderungen auf dem Stapel, die ich nicht wollte verlieren (leider).
Ich hatte Erfolg dabei:
git reset moved_folder
git checkout original_folder
Es hängt davon ab, was Sie erreichen möchten. Wenn Sie möchten, dass die Datei so angezeigt wird, als ob sie nie verschoben wurde, können Sie sie vor dem Verschieben zurücksetzen (oder neu erstellen). Wenn Sie sich nicht für die Geschichte interessieren, verschieben Sie sie einfach zurück.
Wenn Sie versehentlich eine große Anzahl von Dateien umbenannt haben und zu Ihrem Ausgangspunkt zurückkehren möchten, löschen Sie alle umbenannten Dateien, die adds
unter einem git status
Aufruf angezeigt werden.
Sobald Sie alle geänderten Dateien gelöscht haben, können Sie sie ausführen git checkout -- *
, um die ursprünglichen Dateinamen lokal wiederherzustellen.
git reset HEAD file2
git checkout -- file1
rm file2
Der erste Befehl setzt die Datei2 außer Kraft, hinterlässt jedoch eine Kopie davon. Der zweite Befehl stellt die ursprüngliche Datei wieder her und der dritte löscht die neue Datei.
Der Trick, den ich benutzte, bestand darin, einen Git-Stash durchzuführen, um alle meine Änderungen rückgängig zu machen (einschließlich des Wiederherstellens der mv'd-Dateien), und dann den Stash mit Git-Stash-Drop zu löschen.
git mv file2 file1