2016-04-11 6 views
1

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, но это не сработало.

Как мы можем это сделать?

+1

Почему вы используете '--no-commit' при первом' git revert'? –

+0

Покажите нам полную схему того, что «YYY» было в начале, и как вы хотите, чтобы он смотрел после слияния «XXX» в него. –

+0

Re no-commit придерживался этого совета: http://stackoverflow.com/a/21718540/47281. Флаг -no-commit позволяет git возвращать все коммиты одновременно, иначе вам будет предложено отправить сообщение для каждой фиксации в диапазоне, засоряя вашу историю ненужными новыми коммитами. –

ответ

0

Передача --no-commit на revert, а затем попытка использования git checkout для переключения ветвей не сработает.

# First cleanup branch XXX 
git checkout XXX 
git revert C..HEAD 

Здесь нет необходимости пытаться возвращать несколько раз. Просто слейте исходные коммиты, а затем установите историю слияния для возврата

# now get the commits to YYY 
git checkout YYY 
git merge E 
git merge -s ours XXX 
+0

В чем проблема с '--no-commit'? После этого я использую 'git commit' и нажав на удаленное репо (обновленный вопрос будет более понятным). –

+0

@ Маркус Леон - когда вы отправили свой вопрос, вы делали 'git checkout', прежде чем совершили. –

+0

Правильно, это вводит в заблуждение.Обновлен вопрос. –

 Смежные вопросы

  • Нет связанных вопросов^_^