Як вирішити конфлікт при злитті в Git?
Конфлікт виникає, коли дві гілки змінюють одні й ті самі рядки файлу і Git не може автоматично об'єднати зміни. Ось покроковий процес вирішення.
Спочатку виконайте git status, щоб побачити conflicted files. Git позначає конфлікти у файлах маркерами: <<<<<<< HEAD (ваші зміни), ======= (роздільник) і >>>>>>> branch-name (зміни з іншої гілки).
Відкрийте файл у редакторі і знайдіть маркери конфліктів. Вам потрібно вибрати, які зміни залишити: ваші, чужі, або об'єднати обидва. Видаліть маркери <<<<<<<, ======= і >>>>>>>, залишивши лише потрібний код. Збережіть файл.
Після вирішення всіх конфліктів у файлі виконайте git add <файл> для кожного вирішеного файлу. Коли всі конфлікти вирішені, виконайте git commit — Git створить merge-коміт автоматично з повідомленням за замовчуванням.
Для складних конфліктів використовуйте інструменти візуального злиття: git mergetool запустить налаштований інструмент (VS Code, Meld, KDiff3). У VS Code можна вирішувати конфлікти прямо в редакторі — кнопки Accept Current, Accept Incoming, Accept Both.
Якщо хочете скасувати злиття і повернутися до стану до нього, виконайте git merge --abort. Це корисно, коли конфліктів забагато і простіше почати заново.
Порада: щоб зменшити кількість конфліктів, частіше робіть rebase або merge з основної гілки у свою feature-гілку, а також робіть невеликі коміти, що зачіпають менше файлів.