Это был первоначальный снимок моего мерзавца хранилищаПочему это приводит к конфликту слияния?
На ветке master
, файл m1
содержит
L1
на ветви dev
, файл m1
содержит
L1
L2
Если я попытаться слить e dev
от master
, это приводит к конфликту.
$ git checkout master
Switched to branch 'master'
$ git merge dev
Auto-merging m1
CONFLICT (content): Merge conflict in m1
Automatic merge failed; fix conflicts and then commit the result.
$ git diff
diff --cc m1
index 078f94b,9f46047..0000000
--- a/m1
+++ b/m1
@@@ -1,1 -1,2 +1,5 @@@
L1
++<<<<<<< HEAD
++=======
+ L2
++>>>>>>> dev
Хотя я не изменял линии 2 из m1
в master
, как же это приводит к конфликту?
Чтобы проверить фактическое содержимое файла и быть уверенным, если это вызвано белыми пространствами:
На ветке master
git branch
dev
* master
$ xxd m1
0000000: 4c31 0a L1.
На ветке dev
$ git checkout dev
Switched to branch 'dev'
$ xxd m1
0000000: 4c31 0a4c 320a L1.L2.
Вот сценарий, который я использовал для создания этого репо.
#!/bin/bash
mkdir git_demo
cd git_demo
git init
touch m1
git add .
git commit -m "Added file: m1"
# sleep is needed, otherwise a different repo is being created, probably because of *some* filesystem issue!
sleep 1
git branch dev
echo L1 >> m1
git add .
git commit -m "Added line L1 to m1"
# sleep is needed, otherwise a different repo is being created, probably because of *some* filesystem issue!
sleep 1
git checkout dev
echo L1 >> m1
git add .
git commit -m "Added line L1 to m1"
# sleep is needed, otherwise a different repo is being created, probably because of *some* filesystem issue!
sleep 1
echo L2 >> m1
git add .
git commit -m "Added line L2 to m1"
# sleep is needed, otherwise a different repo is being created, probably because of *some* filesystem issue!
gitg --all
git checkout master
git merge dev
Последняя строка файла, возможно, у вас будет символ «Конец файла»? – Geoffroy
Я так не думаю. Пожалуйста, взгляните на конец моего обновленного сообщения. –
Ваш поток - прекрасный пример быстрого слияния, это действительно странно. Можете ли вы отправить точные инструкции, так как вы создали репо? – Maroun