Mir ist nicht klar, wie git revert
Werke. Ich möchte zum Beispiel zu einem Commit zurückkehren, der sechs Commits hinter dem Head liegt, und dabei alle Änderungen in den dazwischen liegenden Commits rückgängig machen.
Sagen Sie seine SHA Hash ist 56e05fced214c44a37759efa2dfc25a65d8ae98d
. Warum kann ich dann nicht einfach etwas tun wie:
git revert 56e05fced214c44a37759efa2dfc25a65d8ae98d
1 Stimmen
Auch wenn diese Frage älter ist als die Frage, die jetzt als Duplikat markiert ist, hat diese eine bessere Antwort. meta.stackexchange.com/questions/147643/
20 Stimmen
Diese Frage und die oberste Antwort hier können Git-Benutzer verwirren. Nur zum besseren Verständnis der Terminologie: Sie brauchen nicht zurückkehren zu eine Verpflichtung. Sie können entweder zurückgesetzt auf eine Übergabe (das ist wie eine Zeitreise mit der Zeitmaschine) oder zurückkehren einen Commit (das ist so, als ob man einen Commit zurückziehen würde, als ob er nie existiert hätte - allerdings bleibt die Revert-Information in der Historie erhalten, so dass man einen Revert wieder rückgängig machen kann, wenn man das möchte) Beachten Sie auch, dass Sie nicht das m-Flag verwenden und eine Commit-Nachricht eingeben sollten, wenn Sie während des Prozesses Konflikte bekommen. Die automatische Meldung, die Git liefert, ist informativer, wenn man in der Historie zurückblickt.
1 Stimmen
@alexrogins Was bedeutet es, einen Commit zurückzuziehen, als hätte er nie existiert? Ich bin mir auch nicht sicher, was "Revert a revert" bedeutet - ich schätze den Kommentar, gute Informationen, ich suche nur nach mehr Details über Ihre Perspektive.
2 Stimmen
@Joe Wenn Sie eine Codezeile hinzufügen und diese Zeile dann committen, würden Sie diese Codezeile rückgängig machen (egal, wo in der Geschichte sie zuerst geschrieben wurde, es muss nicht der letzte Commit sein), wenn Sie sie zurücknehmen. Das macht dann einen Revert-Commit. Wenn Sie den Revert-Commit rückgängig machen, dann machen Sie im Grunde den Undo rückgängig (d.h. Sie machen die ursprüngliche Zeile noch einmal).