Nicht nur Neulinge, sondern auch begeisterte Profis müssen Änderungen rückgängig machen. Und dann fällt mir git revertals erstes der Befehl als sicherster Weg ein. Und es gibt Fallstricke, von denen ich Ihnen erzählen möchte.
Nehmen wir eine einfache Situation: Ein Entwickler beschließt, mathematische Funktionen zu implementieren. Aber auf halbem Weg erkennt er, dass es gut wäre, diese Aufgabe beispielsweise in zwei Unteraufgaben zu zerlegen:
- Implementieren Sie arithmetische Operationen (Addition, Subtraktion, Division usw.)
- Implementieren Sie numerische Operationen (Maximalwert, Minimalwert, Modul einer Zahl usw.)
Es wird einfacher zu überprüfen und zu testen sein. Aber er hat bereits begonnen, es umzusetzen, die Commits wurden bereits erstellt und was ist zu tun? Schreiben Sie nicht das gleiche!

Betrachten Sie einen Commit-Baum. Wir sehen, dass unser Entwickler einen Zweig erstellt hat functions, die Arithmetikklasse , die für die Implementierung von Arithmetikoperationen verantwortlich ist (Commit A ), und die Numerische Klasse , die für die Implementierung von numerischen Operationen verantwortlich ist (Commit N ). Insgesamt gibt es zwei Klassen und zwei Commits.

git revert
, , functions numerical arithmetic. . git revert N arithmetic git revert A numerical. !

— .

? Arithmetic, Numerical!
, git revert . 4 :
A ⟶ N ⟶ revert A ⟶ revert N
revert .
git reset
, reset, revert . … . , .
git rebase
— git rebase .
numerical arithmetic
git rebase -i –root
, pick drop. . numerical:

.
master .

Diese Methode funktioniert nur, wenn Sie in einem privaten Zweig arbeiten. Wenn diese Manipulationen jedoch in einem gemeinsam genutzten Zweig ausgeführt werden, wird beim Veröffentlichen ( git push) angegeben, gitdass der Zweig veraltet ist, da keine Commits darin enthalten sind, und die Veröffentlichung abgebrochen wird.
Um nicht mit Git zu kämpfen, versuchen Sie, Aufgaben im Voraus zu zerlegen, da Sie sonst eine Überraschung erleben können. Sind Sie auf solche Situationen gestoßen, und wenn ja, wie sind Sie aus ihnen herausgekommen?