Was ist der einfachste Weg, um eine bestimmte Übergabe rückgängig zu machen, nämlich:
- nicht im Kopf oder HEAD
- wurde auf die Fernbedienung übertragen.
Denn wenn es nicht die letzte Übertragung ist,
git reset HEAD
funktioniert nicht. Und weil es auf eine Fernbedienung geschoben wurde,
git rebase -i
und
git rebase --onto
wird in den Fernbedienungen einige Probleme verursachen.
Vielmehr möchte ich die Geschichte nicht wirklich verändern. Wenn es fehlerhaften Code gab, war er in der Historie vorhanden und kann gesehen werden. Ich möchte nur, dass er in der Arbeitskopie entfernt wird, und ich habe nichts gegen eine umgekehrte Zusammenführung.
Mit anderen Worten, was ist die Git Äquivalent der folgenden svn-Befehle:
svn merge -r 303:295 http://svn.example.com/repos/calc/trunk
der alle Änderungen von 295 bis 302 entfernt, indem er alle Änderungen in diesen Revisionen als neuen Commit rückwärts zusammenführt.
svn merge -c -302 ^/trunk
der den 302-Commit rückgängig macht, indem er natürlich einen weiteren Commit hinzufügt, der die Änderungen aus dem entsprechenden Commit rückgängig macht.
Ich dachte, dass dies ein ziemlich einfacher Vorgang in Git und ein ziemlich häufiger Anwendungsfall sein sollte. Was ist sonst der Sinn von atomaren Übertragungen?
Wir haben Inszenierungen Versteck und alles, um sicherzustellen, dass die Übertragungen perfekt atomar sind, sollte man dann nicht in der Lage sein, eine oder mehrere dieser atomaren Übertragungen einfach rückgängig zu machen?
0 Stimmen
Ist damit Ihre Frage beantwortet? Wie kann ich gepushte Commits mit Git rückgängig machen?