525 Stimmen

Wie kann ich einen verlorenen Commit in Git wiederherstellen?

Zuerst bekam ich "Ihr Zweig ist dem Original/Master um 3 Commits voraus", dann ist meine App zu einem früheren Zeitpunkt mit früheren Änderungen zurückgekehrt.

Wie kann ich das, was ich in den letzten 11 Stunden getan habe, zurückbekommen?

15voto

Ventrova Punkte 131

Versuchen Sie dies, Dies zeigt alle in Git aufgezeichneten Übertragungen für einen bestimmten Zeitraum an

git reflog

Finden Sie den gewünschten Commit mit

git log HEAD@{3}

oder

git log -p HEAD@{3}    

Dann prüfen Sie, ob es das Richtige ist:

git checkout HEAD@{3}

Dadurch wird ein abgetrennter Kopf für diese Übergabe erstellt. Hinzufügen und Übertragen von Änderungen, falls erforderlich

git status 
git add
git commit -m "temp_work" 

Wenn Sie nun einen Commit zurück auf einen Zweig, sagen wir Master, wiederherstellen wollen, müssen Sie diesen Zweig switch to master nennen und dann mit Master zusammenführen.

git branch temp
git checkout master
git merge temp

Hier ist auch ein Link speziell für reflog auf einer Git-Tutorial-Seite: Atlassian Git Tutorial

9voto

Thomas Joeisseint Punkte 566

Wenn Sie Ihren Commit nicht finden können mit git reflog und es kam vor, dass Sie mit IntelliJ-IDE können Sie right click on your project root folder -> Local History -> Show History und machen Sie Ihre Änderungen von dort aus rückgängig.

Ich habe es vermasselt. git rebase con git push -f und das hat mich wirklich gerettet, da der Commit in den lokalen und entfernten Repositories gelöscht wurde.

Ich hoffe, das rettet jemandem den Tag

Saludos

2voto

pymen Punkte 4445

Der sicherste Weg ist

  1. Suchen Sie die Nummer des Commit-Heads für den Zustand, den Sie wiederherstellen möchten

git reflog ou git reflog | grep your_phrase

  1. Erstellen Sie einen neuen Zweig davon

git checkout -b your-branch HEAD@{<your-number>}

-21voto

Ziv Barber Punkte 489

Leider ist Git so unzuverlässig :( Ich habe gerade 2 Tage Arbeit verloren :(

Es ist am besten, alles manuell zu sichern, bevor Sie eine Übertragung vornehmen. Ich habe gerade "git commit" gemacht und git hat einfach alle meine Änderungen zerstört, ohne etwas zu sagen.

Ich habe meine Lektion gelernt - das nächste Mal zuerst ein Backup machen und erst dann eine Verpflichtung eingehen. Traue Git niemals etwas zu.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X