У меня есть файл, назовем его File A. Я печатаю что-то на первой строке. Затем я фиксирую его на главной ветке.Ветвь Переписывание главной ветви при слиянии git
Теперь я делаю другой филиал, позвольте назвать его BranchA. Теперь я открываю файл, удаляю то, что написал в первой строке, что-то другое в той же строке и передал его в BranchA.
Теперь i checkout
к главной ветке, а затем слияние ветви с главной ветвью. Слияние завершено успешно, и когда я открываю файл, строка в BranchA перезаписывает строку на главной ветке.
Почему это происходит она не должна дать мне конфликт, потому что я меняюсь ту же линию на обеих ветвях, а затем пытается объединить их
Вы имеете в виду, что вместо объединения двух коммитов git непосредственно переводит фиксацию из другой ветви в главную ветвь? –
Git не перемещает фиксацию. В ветвях git есть только ** ссылка ** на конкретную фиксацию. Вы можете даже взглянуть на них, если вы откроете файл в '.git/refs/heads'. Это буквально файл, содержащий ключ * SHA1 *, идентифицирующий фиксацию. Git просто меняет эту ссылку. –
В git каждый фиксатор сохраняет refence в своем родительском коммите (или parent commit ** s **, это определяет фиксацию слияния). Таким образом ваша история строится. –