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

Разрешение конфликтов слияния

Конфликты слияния возникают при невозможности автоматически слить изменения при выполнении следующих Git-команд:

  • pull;
  • push;
  • merge.

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

Для продолжения работы с Git вам нужно разрешить конфликты.

Список файлов с конфликтами отображается в окне Conflicts, которое автоматически открывается при возникновении конфликтов во время выполнении команд pull, push и merge.

подсказка

Окно Conflicts можно открыть, выбрав пункт Conflicts из меню Git на боковой панели.

Чтобы разрешить конфликт:

  1. В окне Conflicts в списке выберите файл, в котором возник конфликт.

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

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

    Отображается окно Слияние, разделенное по вертикали на три части. В каждой части отображается текст файла, в котором возник конфликт(ы). Эти части имеют следующие имена: Мои изменения, Результат, Удаленные изменения.

    Если в одной из сливаемых ветвей файл удален, а в другой ветви этот же файл изменен, отображается окно, разделенное по вертикали на две части Мои изменения и Удаленные изменения.

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

    В части Мои изменения вы можете обработать выбранное изменение с помощью значка справа в строке:

    • если вы хотите отменить текущее изменение, нажмите Х (Отменить изменение);

    • если вы хотите принять текущее изменение, нажмите >> (Применить изменение).

      примечание

      Справа от обработанных изменений значки Х и >> не отображаются.

    Если вы не хотите просматривать и обрабатывать каждое изменение в файле, а хотите обработать несколько изменений, используйте следующие элемены управления в верхней части окна Слияние:

    • нажмите >>Слева, чтобы принять все ваши неконфликтные изменения;
    • нажмите << Справа, чтобы принять все удаленные неконфликтные изменения;
    • нажмите UG_accept_all_button.png, чтобы принять все неконфликтные изменения.

    Разрешите оставшиеся изменения нажатием кнопки, соответствующей вашему решению:

    • Принять мои изменения: использовать ваши изменения;

    • Принять удаленные изменения: использовать изменения от других специалистов, участвующих в разработке проекта;

    • Принять результат: слить ваши изменения с изменениями других специалистов, участвующих в разработке проекта.

      примечание

      Доступность кнопок зависит от изменений, которые остались необработанными. Например, если вы приняли все удаленные изменения, кнопка Принять удаленные изменения недоступна.

    После выполнения действий, соответствующих вашему решению, окно Слияние закрывается.

    Если вы хотите закрыть окно Слияние без выполнения каких-либо действий, нажмите Отменить.

  4. Повторите действия этой инструкции, описанные в пунктах 1-3, для разрешения конфликтов во всех файлах, перечисленных в окне Conflicts.

  5. Закройте окно Conflicts.