Weil der Staging-Bereich ist es nicht ganz so einfach wie ein svn revert
. Je nachdem, was du getan hast, und was du bist Ziel ist es, Sie müssen entweder git checkout
oder git reset
verwenden. Sie müssen jedoch mit git reset
vorsichtig sein, da Sie Geschichte neu schreiben und Arbeit verlieren können.
Angenommen, Sie haben die Grafik begehen:
A <-- B <-- C <-- D
Und Sie sind momentan in D
mit einigen Änderungen. Um einfach zu verwerfen alle Änderungen (Stufen- oder nicht), können Sie git reset --hard HEAD
oder git reset --hard D
verwenden. Beides wird den Status Ihrer Arbeitskopie zurücksetzen.
Wenn Sie den Zustand Ihrer Arbeitskopie wollen A
identisch sein, aber nicht verlieren Commits B
und C
, dann sollten Sie verwenden: git checkout A -- .
von der Spitze der Arbeitskopie. Dadurch wird der Status Ihrer Arbeitskopie auf den Inhalt von A
festgelegt. An diesem Punkt ist Ihr Arbeitsbaum schmutzig, also müssen Sie sich verpflichten, die Tatsache aufzuzeichnen, dass Sie zurückgehen wollten. Die Commit Graph an dieser Stelle wäre:
A <-- B <-- C <-- D <-- A'
Wo A'
ist eine neue (mit einer anderen ID) verpflichten, die Ihre Arbeit zurück in die entsprechende bringt der A
zu begehen.
Wenn Sie die COMMIT B
und C
verlieren möchten, können Sie git reset --hard A
verwenden. Dadurch wird der Verzweigungszeiger zurück zum Commit A
verschoben. Du schreibst jetzt Geschichte neu, also sei vorsichtig. Wenn Sie mit anderen Teammitgliedern in diesem Zweig arbeiten, möchten Sie dies nicht tun. Wenn es Ihre eigene Niederlassung ist, müssen Sie wahrscheinlich git push -f
verwenden, wo die -f
steht für --force
, wenn es um Ihre Remote-Repo schieben.Sie müssen auch sicherstellen, dass Sie entweder versehentlich die Arbeit von jemandem Zurückspulen. Alle vergleichbaren Zweige schieben zu vermeiden eingestellt haben push.default
current
oder upstream
und
FWIW, schrieb ich auf ein blog post about reverting changes in Git vor einigen Jahren. Es ist noch heute relevant. Sie können es nützlich finden.
Vielen Dank. – Richard77
Sie sind herzlich willkommen! – jszakmeister