Wiederherstellen von gelöschten Commits
Nachdem Sie einen gelöschten Commit mithilfe des Git Reflogs identifiziert haben, können Sie den Commit wiederherstellen und ihn in Ihrem Repository wieder einfügen. Dieser Prozess beinhaltet das Erstellen eines neuen Branches oder das Cherry-Picken (selektives Übernehmen) des Commits zurück in den aktuellen Branch.
Wiederherstellen von gelöschten Commits
Um einen gelöschten Commit wiederherzustellen, können Sie den Befehl git checkout
verwenden, um einen neuen Branch auf Basis des gelöschten Commits zu erstellen:
$ git checkout -b restored-commit abcd123
Switched to a new branch 'restored-commit'
Dadurch wird ein neuer Branch namens restored-commit
erstellt, der auf den gelöschten Commit mit dem Hash abcd123
zeigt. Anschließend können Sie bei Bedarf an diesem Branch weiterarbeiten.
Alternativ können Sie den Befehl git cherry-pick
verwenden, um die Änderungen aus dem gelöschten Commit direkt auf den aktuellen Branch anzuwenden:
$ git cherry-pick abcd123
[master 1234567] Update documentation
Date: Wed Apr 26 10:23:45 2023 +0000
1 file changed, 2 insertions(+)
Dadurch werden die Änderungen aus dem Commit mit dem Hash abcd123
auf den aktuellen Branch (in diesem Beispiel master
) angewendet.
Überprüfen des wiederhergestellten Commits
Nachdem Sie den gelöschten Commit wiederhergestellt haben, können Sie den Befehl git log
verwenden, um zu überprüfen, ob der Commit erfolgreich wiederhergestellt wurde:
$ git log
commit 1234567890abcdef1234567890abcdef12345678
Author: John Doe <[email protected]>
Date: Wed Apr 26 10:23:45 2023 +0000
Update documentation
commit fedcba0987654321fedcba0987654321fedcba
Author: Jane Smith <[email protected]>
Date: Fri Apr 21 09:87:65 2023 +0000
Fix bug in module Y
Der wiederhergestellte Commit sollte nun im Commit-Verlauf sichtbar sein.
Zu beachten
Beachten Sie, dass das Git Reflog standardmäßig nur Informationen über die letzten 30 Tage speichert. Wenn der gelöschte Commit älter als 30 Tage ist, ist er möglicherweise nicht im Reflog verfügbar, und Sie können ihn möglicherweise nicht mit dieser Methode wiederherstellen.
Zusätzlich können Sie den gelöschten Commit möglicherweise nicht aus Ihrem lokalen Repository wiederherstellen, wenn der gelöschte Commit bereits an ein Remote-Repository gepusht wurde und das Remote-Repository aktualisiert wurde. In solchen Fällen müssen Sie möglicherweise mit Ihrem Team koordinieren, um den gelöschten Commit aus dem Remote-Repository wiederherzustellen.