Einen gelöschten Git-Branch wiederherstellen
Die Blöcke sind verschiedene Fälle, kein Gesamtskript. Wähle den passenden Fall. Branchnamen, Pfade und VERIFIED_COMMIT vor Nutzung ersetzen. Abbruchbefehle gelten nur für ihre laufende Operation; nicht beide Alternativen ausführen.
Kurzantwort
Das Löschen eines Branches entfernt seine Referenz, nicht unbedingt die Commits. Finde den letzten erhaltenen Commit und gib ihm einen neuen Branchnamen.
Beispiel und Voraussetzungen
Du brauchst den richtigen Commit und seine verfügbaren Objekte. Die Löschmeldung kann den SHA nennen; bewahre ihn auf und prüfe ihn.
Vor Änderungen prüfen
Lies das HEAD-Reflog und den möglichen Verlauf. Das Branch-Reflog wird mit dem Branch gelöscht; das HEAD-Protokoll kann relevante Bewegungen enthalten.
git reflog --date=iso
git show VERIFIED_COMMIT
git log -5 --oneline VERIFIED_COMMITReferenz oder getrennten Checkout behalten
Mit git branch rescue/deleted-branch VERIFIED_COMMIT benennst du den Commit ohne Branchwechsel. Du musst das Arbeitsverzeichnis nicht überschreiben.
git branch rescue/deleted-branch VERIFIED_COMMITErster Ablauf
Prüfe mit git show und git log die gewünschte Spitze und Historie. Danach kannst du den ursprünglichen Namen neu anlegen, wenn er frei ist.
Anderes Ergebnis bewusst wählen
Gab es einen Remote-Branch, prüfe vor Fetch und Neuanlage, ob seine Referenz noch existiert. Ein früherer Push garantiert keine dauerhafte Aufbewahrung.
Grenzen und Ausnahmen
Ein neuer Klon enthält dein lokales Reflog nicht. Reflog-Ablauf und Objektbereinigung sind getrennte Regeln; vermeide aggressive Bereinigung während der Rettung.
git ls-remote --heads origin my-branchKonflikte und Aufräumen
Fehlt eine Referenz, kann git fsck --full --no-reflogs --unreachable erhaltene Commits finden. Prüfe die Kandidaten; Git weiß nicht, welchen Branch du suchst.
git fsck --full --no-reflogs --unreachableErgebnis prüfen
Prüfe Verlauf und Zustand des neu angelegten Branches. Die Rettung von Commits stellt keine nie committeten Dateiänderungen wieder her.
git log -5 --oneline rescue/deleted-branch
git status --shortHäufige Fragen
Ein verlorener Name ist keine Sicherung. Fehlt das Objekt bereits, suche einen anderen Klon, einen Mitwirkenden oder eine tatsächlich verfügbare Remote-Referenz.
Operation in FluxGit prüfen
FluxGit kann das Löschen in der App absichern. Das aktivierte Ref journal protokolliert Referenzen, wenn sein installierter Hook läuft; umgangene Hooks und andere Git-Implementierungen sind nicht abgedeckt.
Offizielle Git-Referenzen
Gelöschten Git-Branch mit reflog wiederherstellen
Stelle einen kürzlich gelöschten lokalen Branch wieder her, indem du seinen noch vorhandenen Commit findest und einen neuen Branch anlegst. Sieh reflog und FluxGits Safety Timeline in einem Test-Repository und erfahre, wann der installierte Ref-journal-Hook Referenzänderungen über die Git-Kommandozeile aufzeichnen kann.
Auf YouTube ansehen — öffnet einen neuen Tab
In einem Test-Repository aufgenommen. Englische Sprecherstimme und deutsche Untertitel. Zur Wiederherstellung müssen Commit-Objekte und passende Reflog- oder Journaleinträge noch vorhanden sein; das Ref journal sichert keine Dateien ohne Commit.
Transkript der Erzählung lesen
- Du hast einen Branch mit Arbeit gelöscht: git branch -D, zwei Commits, die nirgendwo gemergt wurden. So holst du sie zurück.
- In FluxGit ist der Branch aus der Liste verschwunden.
- Deshalb ist die Arbeit nicht verloren. Ein Branch ist eine Markierung. git branch -D entfernt die Markierung, aber die beiden Commits bleiben im Repository, ohne dass ein Branch auf sie zeigt. Das Reflog erinnert sich noch an sie. Erstelle einen Branch auf dem letzten Commit, und beide sind zurück.
- Öffne die Safety Timeline. Sie zeigt das Reflog in einfachen Sätzen.
- Find a lost commit: Gib einen Teil der Nachricht ein. Ein Treffer: der letzte Commit des gelöschten Branches.
- Create branch here. Ein Wiederherstellungsbranch zeigt auf diesen Commit, und sonst wird nichts verschoben.
- Beide Commits sind wieder im Graphen.
- Aktiviere das Ref journal für dieses Repository.
- Wenn der installierte Git-Hook ausgeführt wird, kann FluxGit Branch-Löschungen über die Git-Kommandozeile aufzeichnen, einschließlich Terminal- oder Agentenbefehlen.
- Das Umgehen des Hooks und andere Git-Implementierungen sind nicht abgedeckt.
- Es zeichnet Referenzen auf, keine Dateien ohne Commit.
- Für die Wiederherstellung müssen die Commit-Objekte weiterhin vorhanden sein.
- Im Terminal: git reflog, finde den Commit und führe dann git branch mit dem alten Namen und diesem Commit aus.
- Zusammenfassung. Ein gelöschter Branch ist eine verlorene Markierung; das Reflog findet die Commits noch. Nächste Lektion: wenn ein KI-Agent deinen Code löscht.