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

Конфликты слияния

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

Процесс разрешения конфликтов слияния позволяет пользователям выбрать, какие строки кода нужно сохранить и зафиксировать (commit). В этом документе показано, как разрешать конфликты слияния в Studio IDE.

Определение конфликтов слияния

С конфликтом слияния можно столкнуться в двух случаях:

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

Способ разрешения конфликта в обоих сценариях будет абсолютно одинаковым.

Например, если вы и ваш коллега внесли изменения в один и тот же файл и закоммитили их, вы столкнетесь с конфликтом слияния сразу после нажатия Commit and sync.

Studio IDE отобразит следующее:

  • Commit and resolve в git action bar в разделе Version Control вместо Commit — это означает, что Cloud Studio IDE обнаружил конфликты, которые необходимо разрешить.
  • Редактор с разделением на две части — левая часть содержит ваши изменения и доступна только для чтения. Правая часть содержит дополнительные изменения, позволяет редактирование и помечает конфликт специальными маркерами:
<<<<<< HEAD
your current code
======
conflicting code
>>>>>> (some branch identifier)
  • Файл и путь к нему, подсвеченные красным цветом в File Catalog, с иконкой предупреждения, указывающей на необходимость разрешения конфликта.
  • Имя файла, выделенное красным цветом в разделе Changes, также с иконкой предупреждения.
  • Если вы попытаетесь выполнить commit, не разрешив конфликт, Studio IDE покажет всплывающее окно со списком файлов, которые требуется разрешить.
Конфликтующий участок, который необходимо разрешить, будет подсвеченКонфликтующий участок, который необходимо разрешить, будет подсвечен
Всплывающее окно при попытке коммита без разрешения конфликтаВсплывающее окно при попытке коммита без разрешения конфликта

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

Вы можете легко разрешать конфликты слияния, связанные с конкурирующими изменениями строк, прямо в Cloud Studio IDE.

  1. В Studio IDE вы можете редактировать правую часть конфликтующего файла, выбрать строки кода, которые нужно сохранить, и удалить остальные.
    • Примечание: левая часть редактора доступна только для чтения, и вносить в неё изменения нельзя.
  2. Удалите специальные флаги или маркеры конфликта <<<<<<<, =======, >>>>>>>, которые обозначают конфликт слияния, а также выберите строки кода, которые необходимо сохранить.
  3. Если в файле больше одного конфликта слияния, прокрутите вниз до следующего набора маркеров конфликта и повторите шаги один и два, чтобы разрешить конфликт.
  4. Нажмите Save. Вы заметите, что подсветка строк исчезнет и фон станет обычным. Это означает, что конфликт был успешно разрешен.
  5. Повторите этот процесс для каждого файла, в котором есть конфликт слияния.
Выбор строк кода, которые нужно сохранитьВыбор строк кода, которые нужно сохранить
Редактирование файлов с конфликтами
  • Если вы откроете файл с конфликтом из раздела Changes, имя файла будет отображаться примерно как model.sql (last commit), и файл будет полностью доступен только для чтения, без возможности редактирования.
  • Если вы откроете файл с конфликтом из File Catalog, вы сможете редактировать файл в правой части редактора.

Коммит изменений

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

  1. Нажмите в git action bar кнопку Commit and resolve.
  2. Во всплывающем окне Commit Changes будет подтверждено, что все конфликты были разрешены. Введите сообщение коммита и нажмите Commit Changes.
  3. Studio IDE вернется в обычное состояние, и вы сможете продолжить разработку!
Конфликт был успешно разрешенКонфликт был успешно разрешен
Всплывающее окно Commit Changes для фиксации измененийВсплывающее окно Commit Changes для фиксации изменений

Нашли ошибку?

0
Loading