Commits D & E были отмечены ошибкой вместо ветки YXY. Мы пытаемся не использовать git reset
, чтобы решить эту проблему.Git revert, за которым следует ошибка слияния «ошибка уже не завершена»
Итак, мы имеем:
- XXX: A -> B -> C -> D -> E
- YYY: A -> B -> C
Мы вернулись к совершить C на ветви XXX
git checkout XXX
git revert --no-commit C..HEAD
git commit
git push
Это получает вас
- XXX: А -> В -> С -> D -> Е -> Р (Р есть Revert)
- YYY: А -> В -> С
Тогда мы объединены в отрасли YYY, где мы хотели восстановить E как головку (без использования сброса).
git checkout YYY
git merge origin/XXX
Так что теперь мы имеем:
- XXX: A -> B -> C -> D -> E -> F
- YYY: A -> B -> C -> D -> E -> F
Затем мы попытались сбросить YYY на E
git revert --no-commit E..HEAD
но вернуться коммите вам эту ошибку:
error: a cherry-pick or revert is already in progress hint: try "git cherry-pick (--continue | --quit | --abort)" fatal: revert failed
Пробовал с помощью --continue
, но это не сработало.
Как мы можем это сделать?
Почему вы используете '--no-commit' при первом' git revert'? –
Покажите нам полную схему того, что «YYY» было в начале, и как вы хотите, чтобы он смотрел после слияния «XXX» в него. –
Re no-commit придерживался этого совета: http://stackoverflow.com/a/21718540/47281. Флаг -no-commit позволяет git возвращать все коммиты одновременно, иначе вам будет предложено отправить сообщение для каждой фиксации в диапазоне, засоряя вашу историю ненужными новыми коммитами. –