Wie Jefromi kommentierte,
git checkout master
git reset --hard origin/master
macht das Richtige: den Master in seinen Ursprungsstatus versetzen. (Wenn Sie sich bereits in der master
Verzweigung befinden, können Sie den ersten Befehl weglassen.) Außerdem bleibt das Reflog der Verzweigung intakt.
Alte minderwertige Antwort:
git checkout dev
git branch -D master
git checkout master
Dadurch wird zu einem anderen Zweig gewechselt (in diesem Fall "dev" - wählen Sie einen anderen Zweig aus), der lokale master
Zweig wird gelöscht und anschließend neu erstellt remotes/origin/master
(was je nach Ihren Einstellungen und Ihrer Git-Version möglicherweise nicht funktioniert). Der letzte Befehl ist oft gleichbedeutend mit
git checkout -b master remotes/origin/master
Im Vergleich zu der obigen neuen Antwort hat dies den Nachteil, dass das Reflog zerstört und neu erstellt wird (dh Sie können dies bei Bedarf nicht so einfach rückgängig machen), und es ist weniger klar, was hier passiert. Außerdem muss ein anderer Zweig vorhanden sein, zu dem Sie beim Löschen und Wiederherstellen wechseln können (dies war jedoch in der ursprünglichen Frage der Fall).
git reset --hard origin/master
? Auch ... funktioniert dieser letzte Schritt überhaupt? Scheint mir nicht. (git checkout -b master origin/master
würde aber.)checkout dev
EineDie Antwort von Paŭlo Ebermann ist richtig:
Und fügen hinzu , dass , wenn Sie auch entfernen möchten untracked Dateien und ignoriert Dateien:
Quelle mit weiteren Details: Wie entferne ich lokale (nicht verfolgte) Dateien aus dem aktuellen Git-Arbeitsbaum?
quelle