Angenommen, der andere Typ hat eine Leiste über foo erstellt, aber Sie haben in der Zwischenzeit baz erstellt und sich dann zusammengeschlossen, um eine Geschichte von zu geben
$ git lola
* 2582152 (HEAD, Master) Zweig 'otherguy' zusammenführen
| \
| * c7256de (otherguy) bar
* | b7e7176 baz
| /
* 9968f79 foo
Hinweis: Git Lola ist ein nicht standardmäßiger, aber nützlicher Alias.
Keine Würfel mit git revert:
$ git KOPF zurücksetzen
fatal: Commit 2582152 ... ist eine Zusammenführung, aber es wurde keine Option -m angegeben.
Charles Bailey gab wie immer eine ausgezeichnete Antwort . Verwenden git revertwie in
$ git revert --no-edit -m 1 HEAD
[master e900aad] "Zweig 'otherguy' zusammenführen"
0 Dateien geändert, 0 Einfügungen (+), 0 Löschungen (-)
Löschmodus 100644 bar
effektiv löscht barund produziert eine Geschichte von
$ git lola
* e900aad (HEAD, Master) "Zweig 'otherguy' zusammenführen"
* 2582152 Zweig 'otherguy' zusammenführen
| \
| * c7256de (otherguy) bar
* | b7e7176 baz
| /
* 9968f79 foo
Aber ich vermute, Sie möchten das Merge-Commit wegwerfen :
$ git reset --hard HEAD ^
HEAD ist jetzt bei b7e7176 baz
$ git lola
* b7e7176 (KOPF, Meister) baz
| * c7256de (otherguy) bar
| /
* 9968f79 foo
Wie im Handbuch dokumentiertgit rev-parse
<rev>^Beispiel: HEAD ^,v1.5.1^0
Ein Suffix ^zu einem Revisionsparameter bedeutet das erste übergeordnete Element dieses Festschreibungsobjekts. ^<n>bedeutet das n- te Elternteil ( dh <rev>^ entspricht äquivalent zu <rev>^1). In der Regel <rev>^0bedeutet dies das Festschreiben selbst und wird verwendet, wenn <rev>der Objektname eines Tag-Objekts auf ein Festschreibungsobjekt verweist.
Vor dem Aufrufen git resetwar HEAD^(oder HEAD^1) also b7e7176 und HEAD^2war c7256de, dh der erste und der zweite Elternteil des Merge-Commits.
Seien Sie vorsichtig, git reset --hardda dies die Arbeit zerstören kann.