Я знаю, что git cherry-pick
- это команда, использующая для применения изменений указанной фиксации, но я думаю, что просто не понимаю, как она работает.
Скажем, что репо действует так:
git init
echo a>a
git add .; git commit -am 'master add line a'
git checkout -b dev
echo b>>a
git commit -am 'dev add line b'
echo c>>a
git commit -am 'dev add line c'
git checkout master
git cherry-pick dev
Я думал, что команда cherry-pick
будет хорошо работать и изменить файл a
на:
a
c
но на самом деле я получил следующее сообщение:
error: could not apply 08e8d3e... dev add line c
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
И затем я запускаю:
git diff
выход:
diff --cc a
index 7898192,de98044..0000000
--- a/a
+++ b/a
@@@ -1,1 -1,3 +1,6 @@@
a
++<<<<<<< HEAD
++=======
+ b
+ c
++>>>>>>> 11fff29... abc
Итак, мой вопрос: Почему существует конфликт вроде git -diff? Каковы детали работы вишневого мешка в этом случае?