Разрешать конфликты слияния — это весело! — никто никогда не говорил. Их никто не любит, но это не меняет того факта, что они, ну, часть работы. В этом коротком посте я хотел бы кратко объяснить, откуда они берутся, показать, как их решить, и, в качестве дополнительного бонуса, предложить решение, которое потенциально позволит их избежать!

Конфликты слияния — что это такое?

Конфликт слияния — это событие, которое возникает, когда Git не может автоматически разрешить различия в коде между двумя фиксациями. Они могут произойти в результате слияния веток, во время перебазирования или когда вы выбираете вишни в Git.

Хорошая новость заключается в том, что Git довольно хорошо понимает, как интегрировать изменения, поэтому большую часть времени вы в безопасности. Трудная часть начинается, когда точно такая же строка была изменена, и Git не может решить, какая версия правильная. Он уведомит вас об этом в терминале и возложит на вас ответственность за исправление.

Решение конфликтов слияния обычным способом

Итак, как мы разрешаем конфликты? Мы можем либо решить их вручную, либо использовать графический интерфейс Git, такой как встроенный в VS Code или JetBrains IDE, или отдельное настольное приложение, такое как Tower или Sourcetree.

Давайте посмотрим на разрешение конфликтов вручную.

Конфликтующие изменения легко обнаружить, так как они будут отмечены в файле <<<<<<< и >>>>>>>. Часть до ======= — это ваша версия конфликтующих строк, а часть после — их версия. Удалите ненужные строки (включая маркеры конфликта) и оставьте правильные.

Раннее обнаружение конфликтов слияния

Конфликты слияния не так страшны, как кажутся, но правда в том, что их решение может быть долгим и утомительным процессом, особенно в больших проектах.

Вот где пригодится GitLive — мощный инструмент, который предупредит вас внутри вашей IDE в тот момент, когда вы сделаете изменение в редакторе, которое конфликтует с изменением в любой другой ветке. Предупреждения показывают вам потенциальные конфликты и дают вам возможность решить их до того, как возникнет конфликт слияния.

Начиная с GitLive

Установите последнюю версию GitLive VS Code extension или JetBrains plugin, чтобы начать работу.

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

Если вы внесли конфликтующие изменения, вы увидите ярко-красный индикатор конфликта. Эти конфликты могут быть незафиксированными локальными изменениями, которые вы еще не отправили, или существующими изменениями в вашей ветке, которые конфликтуют с изменениями ваших товарищей по команде.

В JetBrains нажмите на аватар автора (или вы можете прокрутить затронутые строки в VS Code), чтобы проверить изменение и увидеть различия, из какой ветки они произошли, и даже выбрать изменения прямо в ваш локальный файл.

Вот и все, надеюсь, вы найдете мое мини-руководство по устранению конфликтов слияния полезным, и в следующий раз, когда вы столкнетесь с конфликтом слияния, вы не будете паниковать. Дайте мне знать, что вы думаете в комментариях!

Повышение уровня кодирования

Спасибо, что являетесь частью нашего сообщества! Перед тем, как ты уйдешь: