Git·19 питань

Як вирішити конфлікт при злитті в 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-гілку, а також робіть невеликі коміти, що зачіпають менше файлів.

Чи корисна ця відповідь?

Інші питання цієї теми

Пов’язані питання з інших тем