Commits D & E wurden versehentlich in Filiale XXX eingecheckt anstatt YYY. Wir versuchen, git reset
nicht zu verwenden, um das zu lösen. SoGit zurücksetzen, gefolgt von merge bekommen 'zurück bereits in Arbeit' Fehler
haben wir:
- XXX: A -> B -> C -> D -> E
- YYY: A -> B -> C
Wir kehrten zu commit C auf einem Ast XXX
git checkout XXX
git revert --no-commit C..HEAD
git commit
git push
Diese bekommt man
- XXX: A -> B -> C -> D -> E -> F (F ist die revert)
- YYY: A -> B -> C
Dann führten wir in dem Zweig YYY wo wir E als Kopf wiederherstellen wollten (ohne Reset zu verwenden).
git checkout YYY
git merge origin/XXX
So, jetzt haben wir:
- XXX: A -> B -> C -> D -> E -> F
- YYY: A -> B -> C -> D -> E -> F
Dann haben wir versucht, YYY zurücksetzen
git revert --no-commit E..HEAD
bis E ABER die zufällt zu begehen bekommt man diesen Fehler:
error: a cherry-pick or revert is already in progress hint: try "git cherry-pick (--continue | --quit | --abort)" fatal: revert failed
Versuchte --continue
verwenden, aber das hat nicht funktioniert.
Wie können wir das tun?
Warum verwenden Sie '--no-commit' auf der ersten' git revert'? –
Zeigen Sie uns das vollständige Diagramm dessen, was 'YYY' am Anfang war, und wie Sie wollen, dass es nach dem Zusammenführen von' XXX' hineingeht. –
Re no-commit folgte diesem Rat: http://stackoverflow.com/a/21718540/47281. Mit dem --no-commit-Flag kann git alle Commits auf einmal zurücksetzen. Andernfalls werden Sie bei jedem Commit im Bereich zur Eingabe einer Nachricht aufgefordert, die Ihren Verlauf mit unnötigen neuen Commits überschreibt. –