Решение конфликта
Чтобы продолжить отправку только что сделанных изменений в удаленный репозиторий, мы должны вручную разрешить конфликт. Для этого давайте выполним запрос на получение, чтобы получить самый последний набор изменений из удаленного репозитория.
Выполните следующую команду git pull.
$ git pull origin main
Username:
Password:
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From https://example.backlog.com/git/BLGGIT/tutorial.git
* branch main -> FETCH_HEAD
Auto-merging sample.txt
CONFLICT (content): Merge conflict in sample.txt
Automatic merge failed; fix conflicts and then commit the result.
Отобразится сообщение, предупреждающее нас о конфликте слияния.
Когда вы откроете sample.txt
, вы увидите маркеры, добавленные Git, указывающие на конфликты в этом разделе файла, как показано ниже.
Anyone can learn Git with this tutorial and Backlog
add: Register a change in an index
<<<<<<< HEAD
commit: Save the status of an index
=======
pull: Obtain the content of the remote repository
>>>>>>> 17c860612953c0f9d88f313c8dfbf7d858e02e91
Мы собираемся решить конфликт, приняв оба изменения и уда лив маркер.
Anyone can learn Git with this tutorial and Backlog
add: Register a change in an index
commit: Save the status of an index
pull: Obtain the content of the remote repository
Как только мы решим конфликт и содержимое файла изменится, нам нужно будет зафиксировать изменения.
$ git add sample.txt
$ git commit -m "merge"
[main d845b81] merge
Теперь мы получили последние изменения из удаленного репозитория.
Мы можем проверить точность журнала репозитория с помощью команды git log. Параметр --graph
покажет журнал ветви в формате графика, а параметр --online
попытается сжать исходящее сообщение.
$ git log --graph --oneline
* d845b81 merge
|\
| * 4c01823 append description of the pull command
* | 95f15c9 append description of the commit command
|/
* 3da09c1 append description of the add command
* ac56e47 first commit
Это указывает на то, что два журнала успешно объединены с новой фиксацией слияния. Теперь мы можем безопасно передать это изменение в удаленный репозиторий без каких-либо конфликтов слияния.