Маркеры конфликтов Git

После того, как я вытащил из удаленной ветки, у меня возник конфликт, когда я открываю файл, он выглядит примерно так:

<<<<<<< HEAD:file.txt
Hello world
=======
Goodbye
>>>>>>> 77976da35a11db4580b80ae27e8d65caf5208086:file.txt

Мне нужны некоторые объяснения маркеров, какая часть кода вытаскивается из удаленного и из локальной?

Что означает код 77976da35a11db4580b80ae27e8d65caf5208086?

Ответ 1

Линия (или линии) между линиями, начинающимися <<<<<<< и ====== здесь:

<<<<<<< HEAD:file.txt
Hello world
=======

... это то, что вы уже имели локально - вы можете сказать, потому что HEAD указывает на вашу текущую ветку или фиксацию. Линия (или линии) между линиями, начинающимися с ======= и >>>>>>>:

=======
Goodbye
>>>>>>> 77976da35a11db4580b80ae27e8d65caf5208086:file.txt

... это то, что было введено другим фиксатором, в данном случае 77976da35a11. Это имя объекта (или "хэш", "SHA1sum" и т.д.) Коммита, который был объединен с HEAD. Все объекты в git, будь то коммиты (версия), капли (файлы), деревья (каталоги) или теги, имеют такое имя объекта, которое однозначно идентифицирует их на основе их содержимого.