Похоже, что результатом устранения конфликтов является то, что нет необходимости принимать коммит.
Рассмотрим, например, коммит, состоящий из исправления орфографии из одного слова:
--- a/text.txt
+++ b/text.txt
@@ -nn,1 +nn,1 @@
some context
is here
-and there was a tyop
+and there was a typo
in one of the
lines
Предположим, вы решили выбрать этот коммит. В вашем текущем (HEAD
) коммите этот же файл имеет:
some context
is here
but there are no typos
in one of the
lines
Операция cherry-pick скажет вам, что существует конфликт между изменением, которое вы выбираете cherry (который пытается заменить «tyop» на «typo» в этой строке), с версией, которую вы фактически используете (которая вообще не имеет этой строки).
Когда вы посмотрите на файл и подумаете о нем, вы, вероятно, решите использовать последнюю строку, в которой нет опечатки, которую нужно исправить. Эффект от исправления опечатки в этом случае заключается в том, чтобы не менять источник .
Когда вы запустите git cherry-pick --continue
, Git скажет вам, что вы не внесли изменений. Теперь вы должны решить:
- Правильно ли вы разрешили все конфликты или случайно решили конфликт, отбросив изменения, которые хотели бы сохранить ?
- Если вы правильно разрешили все конфликты, хотите ли вы сделать новый коммит, файлы которого на 100% идентичны оригинальным коммитам? Если это так, используйте
git commit --allow-empty
.
- Если вам все-таки не нужны какие-либо изменения, используйте
git cherry-pick --abort
(чтобы полностью завершить операцию). Это также пишется git reset
(я предпочитаю git cherry-pick --abort
правописание).