Skip to main content
  1. Learn
  2. Software Development
  3. Guides
  4. Git tutorial
  5. Как использовать Git
  6. Как использовать Git в командной строке
  7. Решение конфликта
GuidesSoftware DevelopmentBacklog
Git

Project and code management together.

Решение конфликта

Чтобы продолжить отправку только что сделанных изменений в удаленный репозиторий, мы должны вручную разрешить конфликт. Для этого давайте выполним запрос на получение, чтобы получить самый последний набор изменений из удаленного репозитория.

Выполните следующую команду 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

Это указывает на то, что два журнала успешно объединены с новой фиксацией слияния. Теперь мы можем безопасно передать это изменение в удаленный репозиторий без каких-либо конфликтов слияния.

Subscribe to our newsletter

Learn with Nulab to bring your best ideas to life