Что не показывало никаких конфликтов?
Возможно, потому что ваше изменение в ветке master
было точно таким же, как и в ветке abc
, до конца строки "Первая линия". Так что не было никаких противоречивых изменений. Если бы вместо этого вы изменили третью строку файла на «Третья строка» в одной из ветвей, то вы бы зафиксировали два разных изменения в одной строке, и возник бы конфликт. Но если изменения такие же , то проблем нет.
Я пытался с несколькими попытками иногда, если между ними нет пустой строки, как показано ниже ... тогда это показывает, что существует конфликт.
Конечно. Теперь вы изменили вторую строку в master
на «Первая строка», а в третьей строке ничего нет, тогда как abc
имеет коммиты, которые отличаются во второй и третьей строках. Какой из них git
выбрать? Там нет никакого способа сказать, поэтому вы должны решить это. В предыдущем случае git
не нужно выбирать между двумя вариантами, потому что они оба одинаковы.
Обновление:
На шаге 1 вашего обновления вы создали первоначальный коммит с файлом, содержащим:
Hello Git..!
First Line
Это в ветке master
. Затем вы идете и создаете новую ветку abc
, добавляя строку. И затем, на шаге 3, вы говорите, что извлекли master
и изменили файл на
Hello Git..!
First Line
и совершил , что . Но это именно то, что должно было быть в master
во-первых, поэтому не ясно, что изменит ваш коммит. Похоже, у вас есть еще один коммит в master
, который изменяет файл, или, возможно, некоторые случайные символы пробела.
Суть в том, что git
скажет вам, что существует конфликт слияния, когда он не может понять, что делать при объединении двух файлов. Когда это происходит, он помечает файл как * Индикаторы 1043 *, =====
и <<<<<
и обе версии измененного региона, так что вы сможете точно увидеть, в чем заключается конфликт. Различные версии git
могут даже вести себя по-разному с точки зрения того, что они могут или не могут решить автоматически, или почему.
Оглядываясь на исходный пример и на репозиторий Github, с которым вы связались, легко понять, почему нет конфликта: второй коммит в master
и второй коммит в abc
влияют на разные строки и вы можете увидеть это прямо в Github. Вот изменение коммита 549009d в master
:
Это явно заменяет строку 1 файла. Вот коммит 462394b в ветке abc
:
Как видите, это изменение не касается строки 1, а затрагивает только строку 3 (и добавляет строку 4). Таким образом, изменения совершенно различны, и git
может применить их оба без какой-либо двусмысленности.