Конфликты слияния

Средний уровень Git

George Boorman

Curriculum Manager, DataCamp

Конфликты

  • Конфликт

    • Невозможность разрешить различия в содержимом одного или нескольких файлов между ветками
  • Изменение одного файла в двух ветках

  • Попытка слияния

  • Git не знает, какую версию сохранить

  • Конфликт!

Средний уровень Git

Конфликтующие версии README.md

Ветка documentation

# Contents and usage

This repo contains source code 
for the DataCamp website.

It also contains source code for an 
AI-Assistant (recommendation system) 
that takes prompts from learners and 
returns suggested content
that they might be interested in. 

It is for internal use only, 
external access is prohibited.

Ветка main

# Contents and usage

This repo contains source code 
for the DataCamp website.

It is for internal use only, 
external access is prohibited.
Средний уровень Git

Слияние

  • Из ветки main
git merge documentation
Auto-merging README.md
CONFLICT (add/add): Merge conflict in README.md
Automatic merge failed; fix conflicts and then commit the result.
Средний уровень Git

Открытие файла

nano README.md

Файл README с разделами конфликта в редакторе nano

Средний уровень Git

Синтаксис конфликта Git

Аннотированный файл конфликта: содержимое ветки main и ветки documentation

Средний уровень Git

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

Редактор nano: удаление синтаксиса Git — <<<<<<< documentation, =======, и >>>>>>> HEAD

  • Сохранить: Ctrl + O (не Ctrl + 0), затем Enter
  • Выйти: Ctrl + X
Средний уровень Git

Слияние веток

  • Слияние после разрешения конфликта
git add README.md
git commit -m "Resolving README.md conflict"
git merge documentation
Already up to date.
  • Лучше предотвратить, чем устранять!
Средний уровень Git

Давайте потренируемся!

Средний уровень Git

Preparing Video For Download...