← До фільтрів та технологій

← До списку лабораторних по Git

Git Лабораторна 89: Практика конфліктів і інструментів обʼєднання

Технологія: Git

Номер лабораторної: 89 · Рівень: middle

Тема: Вирішення конфліктів merge з merge tool

Повний опис / сценарій лабораторної:

Meta: навчитися комфортно розвʼязувати конфлікти з допомогою merge tool замість ручного редагування лише у текстовому редакторі.



Krok 1. Створити ситуацію конфлікту між двома гілками.

Komandi: cd ~/git_lab1; git switch -c conflict89-main; echo "base" > conflict89.txt; git add conflict89.txt; git commit -m "Base conflict file"



Krok 2. Створити гілку conflict89-a і змінити рядок.

Komandi: git switch -c conflict89-a; echo "change from A" > conflict89.txt; git commit -am "Change from A"



Krok 3. Повернутися на conflict89-main і створити іншу гілку conflict89-b.

Komandi: git switch conflict89-main; git switch -c conflict89-b; echo "change from B" > conflict89.txt; git commit -am "Change from B"



Krok 4. Змерджити conflict89-a у conflict89-main.

Komandi: git switch conflict89-main; git merge conflict89-a



Krok 5. Спробувати змерджити conflict89-b у conflict89-main щоб отримати конфлікт.

Komanda: git merge conflict89-b



Krok 6. Переглянути статус з конфліктами.

Komanda: git status



Krok 7. Налаштувати merge tool у конфігурації Git якщо ще не налаштований.

Komanda: git config --global merge.tool vimdiff

Poyasnennya: можна використати будь який зручний інструмент.



Krok 8. Запустити merge tool для проблемного файла.

Komanda: git mergetool conflict89.txt

Poyasnennya: у вікні покажуться версії local, remote і base.



Krok 9. Після розвʼязання конфлікту завершити merge.

Komandi: git add conflict89.txt; git commit -m "Resolve conflict89 with mergetool"



Krok 10. Mini zvit.

Zavdannya: опиши переваги merge tool для великих файлів з великою кількістю конфліктних блоків.