Was ist der einfachste Weg, um ein bestimmtes Commit rückgängig zu machen:
- nicht im Kopf oder im Kopf
- Wurde auf die Fernbedienung geschoben.
Denn wenn es nicht das letzte Commit ist,
git reset HEAD
funktioniert nicht Und weil es auf eine Fernbedienung geschoben wurde,
git rebase -i
und
git rebase --onto
wird ein Problem in den Fernbedienungen verursachen.
Mehr noch, ich möchte den Verlauf nicht wirklich ändern. Wenn es schlechten Code gab, war er in der Geschichte vorhanden und kann gesehen werden. Ich möchte es nur in der Arbeitskopie haben, und es macht mir nichts aus, ein Reverse Merge Commit durchzuführen.
Mit anderen Worten, was ist das Git- Äquivalent der folgenden svn-Befehle:
svn merge -r 303:295 http://svn.example.com/repos/calc/trunk
Dadurch werden alle Änderungen von 295 auf 302 entfernt, indem alle Änderungen in diesen Revisionen als neues Commit rückgängig gemacht werden.
svn merge -c -302 ^/trunk
Dies macht das 302-Commit natürlich rückgängig, indem ein weiteres Commit hinzugefügt wird, das die Änderungen von diesem jeweiligen Commit rückgängig macht.
Ich dachte, es sollte eine ziemlich einfache Operation in Git und ein ziemlich häufiger Anwendungsfall sein. Was ist der Sinn von Atomic Commits?
Wir haben Staging Stashing und alles, um sicherzustellen, dass die Commits perfekt atomar sind. Sollten Sie nicht in der Lage sein, eines oder mehrere dieser atomaren Commits einfach rückgängig zu machen?