Ich arbeite in einem Zweig (dh design
) und habe eine Reihe von Änderungen vorgenommen, muss sie jedoch alle verwerfen und auf die Repository-Version zurücksetzen. Ich dachte, ich git checkout design
würde es tun, aber es sagt mir nur, dass ich bereits in der Filiale bin design
und dass ich 3 geänderte Dateien habe.
Wie würde ich diese Änderungen verwerfen und den Zweig so erhalten, wie er jetzt auf dem Remote-Server steht?
git reset --hard HEAD^
git reset --hard HEAD^
sollte wirklich die akzeptierte Antwort sein. OP fragte nicht nach anderen Zweigen ...quelle
git rm [branch name].diff
Wenn Sie keine Änderungen wünschen
design
und definitiv möchten, dass sie nur mit dem Zweig einer Fernbedienung übereinstimmen, können Sie den Zweig auch einfach löschen und neu erstellen:quelle
@ Will, Git Immersion ist ein wirklich schönes und einfaches Git-Tutorial. Es zeigt Ihnen, wie Sie Änderungen für die folgenden Fälle rückgängig machen können: nicht bereitgestellt, bereitgestellt und festgeschrieben. Labore 14-18
quelle
Ruby
installiert werden .. was nicht immer eine Wahl zu sein scheintWenn Sie Änderungen in Ihrem lokalen Zweig verwerfen möchten, können Sie diese Änderungen mit dem Befehl git stash speichern.
git stash save "some_name"
Ihre Änderungen werden gespeichert und können später abgerufen werden, wenn Sie möchten, oder Sie können sie löschen. Danach hat Ihr Zweig keinen nicht festgeschriebenen Code und Sie können den neuesten Code mit git pull aus Ihrem Hauptzweig ziehen.
quelle
Im Quellstamm:
git reset ./ HEAD <--un-stage any staged changes git checkout ./ <--discard any unstaged changes
quelle
REVERSIBLE Methode zum Verwerfen aller Änderungen:
Ich fand diese Frage, nachdem ich eine Zusammenführung vorgenommen und vergessen hatte, sich unmittelbar danach zur Kasse zu entwickeln . Sie haben es erraten: Ich habe angefangen, einige Dateien direkt auf dem Master zu ändern . D'Oh! Da meine Situation kaum einzigartig ist (wir haben es alle getan, nicht wahr; ->), biete ich eine umkehrbare Möglichkeit an, alle Änderungen zu verwerfen, damit der Meister wieder wie entwickelt aussieht.
Nachdem ich a ausgeführt hatte, um
git diff
zu sehen, welche Dateien geändert wurden, und den Umfang meines Fehlers zu bewerten, führte ich Folgendes aus:Nachdem alle Änderungen zuerst gespeichert worden waren, wurden sie als nächstes gelöscht. Alle Änderungen, die an den fehlerhaften Master- Dateien vorgenommen wurden, wurden entfernt und die Parität wiederhergestellt.
Angenommen, ich wollte diese Änderungen jetzt wiederherstellen. Ich kann dies tun. Der erste Schritt besteht darin, den Hash des Stashs zu finden, den ich gerade gelöscht / gelöscht habe:
Nachdem ich den Hash gelernt hatte, stellte ich die nicht festgeschriebenen Änderungen erfolgreich wieder her mit:
Ich wollte diese Änderungen nicht wirklich wiederherstellen, sondern nur überprüfen, ob ich sie zurückerhalten kann, also habe ich sie erneut gelöscht.
Eine andere Möglichkeit besteht darin , den Stash auf einen anderen Zweig anzuwenden , anstatt die Änderungen zu löschen. Wenn Sie also Änderungen löschen, die durch die Arbeit am falschen Zweig vorgenommen wurden, haben
stash
Sie viel Flexibilität, um sich von Ihrem Boo-Boo zu erholen.Wie auch immer, wenn Sie ein reversibles Mittel zum Löschen von Änderungen an einem Zweig wünschen, ist das Vorstehende in diesem Anwendungsfall weniger gefährlich.
quelle
git checkout -f
Dies ist ausreichend für Ihre Frage. Das einzige, was einmal getan ist, ist getan. Es gibt kein Rückgängigmachen.
quelle