Git merge объединить все файлы отслеживания (снимок) или измененные файлы? - PullRequest
0 голосов
/ 02 июня 2018

Предполагая, что у нас есть три файла 1 2 3, и все они имеют начальное значение 6 в каждом файле (commit a)

  • В ветви 1 фиксирует: a (666), b (166),c (126) d (663)
  • В ветви 2 фиксирует: a (666), e (777)

Где:

  • bизменить файл1 6 на 1
  • c изменить файл2 6 на 2
  • d изменить файл1 файл2 обратно на 6 и файл3 на 3
  • e изменить файл1 файл2 файл3 на 7

Когда я объединяю ветвь 1 в ветвь 2, только файл 3 имеет конфликт слияния?
Почему это так?

Насколько я понимаю, коммиты d и коммит e объединят все файлы отслеживания вместе, чтобы все файлы имели конфликты слияния?

1 Ответ

0 голосов
/ 02 июня 2018

Конфликт слияния обычно возникает при одновременных модификациях (в одних и тех же строках файла).

В вашей последовательности изменений только файл3 был изменен как в Branch1, так и в Branch2.
Поэтому имеет смысл слияние:

  • изменение отчета (слияние) из филиала1 вbranch2, где commit d отменил изменения для a и b (назад к 6): объединение состоит в том, чтобы сохранить их модификации от branch2.
  • обнаруживает конфликт для file3, который был изменен в:
    • commit d (branch1)
    • commit e (branch2)
...