Ich habe gerade den falschen Zweig mit einigen experimentellen Änderungen gelöscht, die ich brauche git branch -D branchName
.
Wie kann ich den Zweig wiederherstellen?
git
branch
git-branch
Stefan Kendall
quelle
quelle
Antworten:
Sie können git reflog verwenden , um den SHA1 des letzten Commits des Zweigs zu finden. Ab diesem Punkt können Sie einen Zweig mit neu erstellen
Bearbeiten: Wie @seagullJS sagt,
branch -D
sagt Ihnen der Befehl sha1. Wenn Sie das Terminal also noch nicht geschlossen haben, wird es ganz einfach. Dies löscht beispielsweise einen Zweig mit dem Namenmaster2
:quelle
git branch branchName origin/branchName
Wenn Sie den letzten SHA1 des Zweigs kennen, können Sie es versuchen
Sie finden den SHA1 mit
git reflog
, wie in der Lösung hier beschrieben .quelle
Wenn Sie die Löschung noch nicht gepusht haben, können Sie einfach Folgendes tun:
quelle
Wenn Sie gerade den Zweig gelöscht haben, wird in Ihrem Terminal Folgendes angezeigt:
Verwenden Sie zum Wiederherstellen des Zweigs:
zum Beispiel :
quelle
Erstens: Sichern Sie Ihr gesamtes Verzeichnis, einschließlich des .git-Verzeichnisses.
Zweitens: Sie können verwenden
git fsck --lost-found
, um die ID der verlorenen Commits zu erhalten.Drittens: Rebase oder Merge auf dem verlorenen Commit.
Viertens: Überlegen Sie immer zweimal, bevor Sie -D oder --force mit git verwenden :)
Sie können auch diese gute Diskussion darüber lesen, wie Sie diese Art von Fehler beheben können.
BEARBEITEN: Übrigens, laufen Sie nicht
git gc
(oder lassen Sie es nicht von selbst laufen - dh nicht laufengit fetch
oder ähnliches), sonst verlieren Sie möglicherweise Ihre Commits für immer.quelle
Danke, das hat funktioniert.
// kann meine alten eingecheckten Dateien in meinem alten Zweig sehen
quelle
Folge diesen Schritten:
1: Geben Sie ein:
Dadurch wird der gesamte Commit-Verlauf angezeigt. Sie müssen den sha-1 auswählen, der den letzten Commit enthält, den Sie zurückerhalten möchten
2: Erstellen Sie einen Filialnamen mit der von Ihnen ausgewählten Sha-1-ID , z. B.: 8c87714
quelle
Das hat bei mir funktioniert:
quelle