Перейти к основному содержимому

Как разрешить конфликтующие изменения в среде разработки

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

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

Сообщение о конфликте слияния

Вы можете разрешить этот конфликт следующим образом:

  1. В окне с сообщением о конфликте нажмите Разработка, чтобы открыть ветку, для которой произошел конфликт, в среде разработки. Переключитесь на представление Система управления версиями.

  2. Нажмите на кнопку Синхронизация изменений, чтобы получить с сервера измененные данные проекта.

    Нажатие кнопки «Синхронизация изменений»

    В выпадающем меню раздела Коммит нажмите Объединить ветвь.

    Выбор пункта «Объединить ветвь» в меню группы «Коммит»

  3. Выберите ветвь проекта, которую хотите слить с текущей веткой.

    Выбор ветки для слияния

  4. Введите сообщение коммита слияния.

    Ввод сообщения коммита слияния

  5. После этого в разделе Изменения слияния вы увидите файлы, содержащие конфликты. Они будут отмечены значком К (Конфликт).

    Конфликтующие файлы в группе «Коммит»

    В самом файле конфликт слияния будет обозначен следующим образом:

    Информация о конфликте слияния внутри файла

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

  6. После разрешения всех конфликтов проиндексируйте сделанные изменения и нажмите кнопку Завершить слияние и отправить.

    Нажатие кнопки «Завершить слияние и отправить»

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

    Окно с просьбой добавить конфликтующие файлы в индекс коммита

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

    Окно синхронизации изменений с репозиторием

Отменить слияние

Вы можете отменить слияние, которое привело к возникновению конфликта, и вернуть текущую ветку к состоянию до выполнения операции слияния. Для этого выполните одно из следующих действий:

  • Кликните на стрелку рядом с кнопкой Завершить слияние и отправить и нажмите Отменить слияние.

    Выбор опции «Отменить слияние»

  • Щелкните на имя текущей ветки в панели состояния и выберите команду Отменить слияние в открывшемся меню.

    Выбор команды «Отменить слияние» в панели команд