У меня есть вопрос, связанный с захватом вишни и конфликтами.фиксация вишни - это фиксация снимка или патча?
Книга «Pro Git» explains, которая совершает такие снимки, а не патчи/разности.
Но фиксация вишни может вести себя так, как будто это был патч.
Пример ниже, короче:
создать 3 фиксаций, каждый раз редактировать первый (и сингл) строка файла
сбросить ветку сначала совершить
test1: попытаться выполнить третью фиксацию вихря (конфликт)
тест 2: попробуйте вишни выбор второй фиксации (OK)
mkdir gitlearn
cd gitlearn
touch file
git init
Initialized empty Git repository in /root/gitlearn/.git/
git add file
#fill file by single 'A'
echo A > file && cat file
A
git commit file -m A
[master (root-commit) 9d5dd4d] A
1 file changed, 1 insertion(+)
create mode 100644 file
#fill file by single 'B'
echo B > file && cat file
B
git commit file -m B
[master 28ad28f] B
1 file changed, 1 insertion(+), 1 deletion(-)
#fill file by single 'C'
echo C > file && cat file
C
git commit file -m C
[master c90c5c8] C
1 file changed, 1 insertion(+), 1 deletion(-)
git log --oneline
c90c5c8 C
28ad28f B
9d5dd4d A
тест 1
#reset the branch to 9d5dd4d ('A' version)
git reset --hard HEAD~2
HEAD is now at 9d5dd4d A
git log --oneline
9d5dd4d A
#cherry-pick 'C' version over 'A'
git cherry-pick c90c5c8
error: could not apply c90c5c8... 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'
#the conflict:
cat file
<<<<<<< HEAD
A
=======
C
>>>>>>> c90c5c8... C
тест 2
#same for 'B' - succeeds
git reset --hard HEAD
HEAD is now at 9d5dd4d A
git cherry-pick 28ad28f
[master eb27a49] B
1 file changed, 1 insertion(+), 1 deletion(-)
Пожалуйста, объясните, почему тест 1 не удалось (я мог представить себе ответ, если фиксации были патчами, но снимки hots?)
В первом тесте произошел конфликт слияния. Так как вы сделали сброс во втором, это было успешно. –
Г-н Поливик, спасибо за ответ, но: 1) не уверен, почему вы нарушили форматирование исходного сообщения 2) перед обеими испытаниями был жесткий сброс – MrCricket
Переполнение стека может быть немного чувствительным, когда оно обнаруживает блоки кода. @ Mr.Polywhirl на самом деле не пытался ничего изменить, кроме как сделать нумерованный список, как вы можете видеть в истории изменений, щелкнув бок о бок уценку. Хотя было бы возможно определить проблемы форматирования в предварительном просмотре, я знаю по опыту, как легко его игнорировать. – hvd