Reset
Reset - Hard
#pull der Daten vom zentralen Repository erzwingen
git fetch --all
git reset --hard origin/master
git pull origin master
Reset - Last
However, just in case it happens, don’t worry, there’s a remedy. Type the following command:
$ git reflog
In fact git maintains uncommitted changes on a parallel Directed Acyclic Graph (DAG) for internal bookkeeping. The previous command should show the Head states previous to running git reset –hard. Just pick the most recent Head that matches your changes that you want to recover. Afterwards, reset the current Head to that previous Head using:
$ git reset –hard Head@{4}
Datei wiederherstellen
Ich habe die Löschung begangen und dann weitere Commits durchgeführt
Wenn Sie eine Datei gelöscht, festgeschrieben, dann weitergearbeitet und weitere Festschreibungen durchgeführt haben, nur um festzustellen, dass das Löschen der Datei ein Fehler war, hat Git immer noch Deckung für Sie! Um den richtigen Commit zu finden, prüfen Sie zunächst den Verlauf der gelöschten Datei:
$ git log -- <filename>
Sie können entweder mit dem letzten Commit arbeiten, der die Datei noch enthielt, oder mit dem Commit, der die Datei gelöscht hat. Checken Sie im ersten Fall einfach die Datei aus diesem Commit aus:
$ git checkout <commit hash> -- <filename>
Checken Sie im zweiten Fall die Datei von einem Commit davor aus :
$ git checkout <deletion commit hash>~1 -- <filename>
Ich habe eine Datei gelöscht, festgeschrieben und gepusht
Wenn Sie Ihren Commit oder Ihre Commits bereits auf ein Remote-Gerät gepusht haben, wird das Zurücksetzen und erneute Pushen Probleme verursachen, da der Verlauf des lokalen Repositorys im Wesentlichen neu geschrieben wurde. In diesem Fall ist es wahrscheinlich besser, einen neuen Commit aufzuzeichnen, der die Arbeit desjenigen rückgängig macht, der die Datei gelöscht hat. Führen Sie dazu Folgendes aus:
$ git revert --no-commit <commit>
Oben ist „<commit>“ der Commit, der die Datei löscht. Erstellen Sie anschließend wie gewünscht Ihren neuen Commit. Die Option „--no-commit“ verhindert, dass der Befehl sofort einen neuen Commit erstellt, und ermöglicht es Ihnen stattdessen, genau auszuwählen, welche der im alten Commit eingeführten Änderungen Sie in Ihrem neuen Commit rückgängig machen möchten.