Слияние заключается в том, чтобы влить в текущую ветку все изменения из другой ветки, начиная с
того момента, как история этих веток разошлась. Удобнее всего выполнять слияние из
панели История, потому что она
показывает всю историю вашего репозитория.
Влить эту ветку (merge)
Чтобы влить ветку Б в текущую ветку А, можно сначала найти в 1C:EDT ветку Б, а затем выполнить слияние. Это можно сделать в разных панелях:
- В панели История:
- Убедитесь, что вы видите нужные вам изменения и ветки;
- Найдите ветку Б или метку, которую вы хотите влить;
- Нажмите Слить в
контекстном меню этой ветки;
- Если выбранный коммит указывает на несколько разных веток, выберите нужную.
- В панели Навигатор:
- Нажмите в контекстном меню проекта;
- Выберите ветку Б или метку, которую вы хотите влить;
- В панели Репозитории Git:
- Найдите ветку Б или метку, которую вы хотите влить;
- Нажмите Слить в
контекстном меню этой ветки.
Параметры слияния
1C:EDT предложит вам настроить параметры слияния. Если стандартные параметры вас устраивают, вы можете ничего не менять и просто нажать Слить. Параметры слияния:
- Параметры слияния
- Зафиксировать (фиксировать результат) — влить изменения и создать коммит слияния;
- Не фиксировать (подготовить слияние, но не фиксировать) — влить изменения, подготовить коммит слияния, но не фиксировать его;
- Объединить коммиты (слить в рабочем каталоге и не создавать коммит слияния) — влить изменения и вместо коммита слияния подготовить обычный коммит;
- Параметры перемотки — что делать, если результатом получения и слияния является перемотка вперед:
- Обновить только указатель ветки, если возможна перемотка вперед — обновить только указатель текущей ветки;
-
Создать коммит слияния, даже если возможна перемотка вперед — создать коммит слияния и установить указатель текущей ветки на него;
-
Отменить, если перемотка вперед невозможна — прервать слияние, если его результатом не может быть перемотка вперед;
- Стратегия
сопоставления — способ установления взаимного соответствия между
объектами вливаемой и текущей конфигурации. Этот способ будет использоваться в том
случае, если существуют конфликтующие изменения, которые нужно разрешить вручную в
редакторе сравнения и объединения конфигураций:
- По UUID — по внутреннему идентификатору объекта
конфигурации;
- По имени — по имени объекта конфигурации;
- По UUID, затем по имени — сначала ищется объект
конфигурации с таким же внутренним идентификатором. Если он не найден, тогда
ищется объект конфигурации с таким же именем.
- Открыть редактор
сравнения/объединения (даже при отсутствии потенциальных проблем) —
установка этого флажка позволяет принудительно открыть редактор сравнения и
объединения конфигураций даже в том случае, если отсутствуют конфликтные изменения.
Это может быть полезно в том случае, когда хочется визуально проконтролировать
изменения, вносимые в текущую конфигурацию.
- Внешние настройки
объединения — путь к файлу, в котором хранятся настройки объединения
конфигураций, сохраненные ранее из редактора сравнения и объединения
конфигураций.
Результат слияния
После нажатия
Слить может возникнуть одна из следующих ситуаций:
- Already-up-to-date (уже в актуальном состоянии) — текущая локальная ветка (например, master) указывает на такой коммит, для которого вливаемая ветка или метка (например, feature) является предшественником. Обновлять нечего, никаких изменений не произошло;
- Fast-forward (перемотка вперед) — текущая локальная ветка (например, master) указывает на коммит, который является предшественником вливаемой ветки или метки (например, feature). В этом случае локальная ветка перемещается так, чтобы указывать на вливаемую ветку или метку. Этот новый HEAD извлекается в рабочий каталог;
- Если ни одно из перечисленных условий неприменимо, 1C:EDT запускает процесс слияния. Слияние
может иметь два результата:
- Merged (влито) — сливаемые ветки не имеют
конфликтующих друг с другом изменений. 1C:EDT создает коммит слияния и
перемещает текущую ветку так, чтобы она указывала на коммит
слияния;
- Conflicting (конфликтующие изменения) — в
сливаемых ветках есть конфликтующие друг с другом изменения. 1C:EDT
открывает редактор сравнения и объединения конфигураций для того,
чтобы вы вручную разрешили эти конфликты;
Редактор сравнения и объединения конфигураций открывается при
одновременном выполнении следующих условий:
- Выполняется реальное сравнение/объединение проектов из репозитория и
между сливаемыми ветками есть какие-то отличия;
- При сравнении обнаруживаются потенциальные проблемы (в том числе
конфликтные изменения) или выбрана опция Открыть редактор
сравнения/объединения (даже при отсутствии потенциальных
проблем).
В следующих случаях сравнение / объединение
не
выполняется, поэтому редактор не открывается:
- Если возможна перемотка вперед и выбран любой параметр перемотки,
отличный от Создать коммит слияния, даже если возможна
перемотка вперед;
- Если имя проекта или его расположение относительного корня
репозитория не совпадает в сливаемых ветках.
Если слияние привело к конфликтам, вы можете прервать его, выполнив жесткий сброс до текущей ветки. Это можно сделать как до разрешения конфликтов (в состоянии Conflicting), так и после (в состоянии Merged).
Влить произвольную ветку (merge)
Чтобы влить ветку Б в текущую ветку А, можно сначала инициировать процесс слияния, а затем выбрать ветку Б. Это можно сделать в разных панелях:
- В панели Навигатор нажмите в контекстном меню проекта и выберите ветку или метку, которую вы
хотите влить в текущую;
- В панели Репозитории Git нажмите
Слить... в
контекстном меню текущей ветки и выберите ветку или метку, которую вы хотите
влить в текущую.
1C:EDT предложит вам настроить параметры слияния. Если стандартные параметры вас устраивают, вы можете ничего не менять и просто нажать Слить. Параметры слияния:
- Параметры слияния
- Зафиксировать (фиксировать результат) — влить изменения и создать коммит слияния;
- Не фиксировать (подготовить слияние, но не фиксировать) — влить изменения, подготовить коммит слияния, но не фиксировать его;
- Объединить коммиты (слить в рабочем каталоге и не создавать коммит слияния) — влить изменения и вместо коммита слияния подготовить обычный коммит;
- Параметры перемотки — что делать, если результатом получения и слияния является перемотка вперед:
- Обновить только указатель ветки, если возможна перемотка вперед — обновить только указатель текущей ветки;
-
Создать коммит слияния, даже если возможна перемотка вперед — создать коммит слияния и установить указатель текущей ветки на него;
-
Отменить, если перемотка вперед невозможна — прервать слияние, если его результатом не может быть перемотка вперед;
- Стратегия
сопоставления — способ установления взаимного соответствия между
объектами вливаемой и текущей конфигурации. Этот способ будет использоваться в том
случае, если существуют конфликтующие изменения, которые нужно разрешить вручную в
редакторе сравнения и объединения конфигураций:
- По UUID — по внутреннему идентификатору объекта
конфигурации;
- По имени — по имени объекта конфигурации;
- По UUID, затем по имени — сначала ищется объект
конфигурации с таким же внутренним идентификатором. Если он не найден, тогда
ищется объект конфигурации с таким же именем.
- Открыть редактор
сравнения/объединения (даже при отсутствии потенциальных проблем) —
установка этого флажка позволяет принудительно открыть редактор сравнения и
объединения конфигураций даже в том случае, если отсутствуют конфликтные изменения.
Это может быть полезно в том случае, когда хочется визуально проконтролировать
изменения, вносимые в текущую конфигурацию.
- Внешние настройки
объединения — путь к файлу, в котором хранятся настройки объединения
конфигураций, сохраненные ранее из редактора сравнения и объединения
конфигураций.
Результат слияния
После нажатия
Слить может возникнуть одна из следующих ситуаций:
- Already-up-to-date (уже в актуальном состоянии) — текущая локальная ветка (например, master) указывает на такой коммит, для которого вливаемая ветка или метка (например, feature) является предшественником. Обновлять нечего, никаких изменений не произошло;
- Fast-forward (перемотка вперед) — текущая локальная ветка (например, master) указывает на коммит, который является предшественником вливаемой ветки или метки (например, feature). В этом случае локальная ветка перемещается так, чтобы указывать на вливаемую ветку или метку. Этот новый HEAD извлекается в рабочий каталог;
- Если ни одно из перечисленных условий неприменимо, 1C:EDT запускает процесс слияния. Слияние
может иметь два результата:
- Merged (влито) — сливаемые ветки не имеют
конфликтующих друг с другом изменений. 1C:EDT создает коммит слияния и
перемещает текущую ветку так, чтобы она указывала на коммит
слияния;
- Conflicting (конфликтующие изменения) — в
сливаемых ветках есть конфликтующие друг с другом изменения. 1C:EDT
открывает редактор сравнения и объединения конфигураций для того,
чтобы вы вручную разрешили эти конфликты;
Редактор сравнения и объединения конфигураций открывается при
одновременном выполнении следующих условий:
- Выполняется реальное сравнение/объединение проектов из репозитория и
между сливаемыми ветками есть какие-то отличия;
- При сравнении обнаруживаются потенциальные проблемы (в том числе
конфликтные изменения) или выбрана опция Открыть редактор
сравнения/объединения (даже при отсутствии потенциальных
проблем).
В следующих случаях сравнение / объединение
не
выполняется, поэтому редактор не открывается:
- Если возможна перемотка вперед и выбран любой параметр перемотки,
отличный от Создать коммит слияния, даже если возможна
перемотка вперед;
- Если имя проекта или его расположение относительного корня
репозитория не совпадает в сливаемых ветках.
Если слияние привело к конфликтам, вы можете прервать его, выполнив жесткий сброс до текущей ветки. Это можно сделать как до разрешения конфликтов (в состоянии Conflicting), так и после (в состоянии Merged).
Прервать слияние
Если слияние привело к конфликтам, вы можете прервать его, выполнив жесткий сброс до текущей ветки. Это можно сделать как до разрешения конфликтов (в состоянии Conflicting), так и после (в состоянии Merged).
Cherry Pick
Операция Cherry Pick применяет копию отмеченного коммита
поверх текущего коммита. Таким способом можно переносить в текущую ветку единичные
коммиты из других веток.
Чтобы выполнить Cherry Pick откройте панель История и нажмите Cherry-Pick... в
контекстном меню того коммита, который вы хотите включить в текущую ветку.
Назначение полей:
- Стратегия
сопоставления — способ установления взаимного соответствия между
объектами вливаемой и текущей конфигурации. Этот способ будет использоваться в том
случае, если существуют конфликтующие изменения, которые нужно разрешить вручную в
редакторе сравнения и объединения конфигураций:
- По UUID — по внутреннему идентификатору объекта
конфигурации;
- По имени — по имени объекта конфигурации;
- По UUID, затем по имени — сначала ищется объект
конфигурации с таким же внутренним идентификатором. Если он не найден, тогда
ищется объект конфигурации с таким же именем.
- Сравнивать модули с
учетом структуры — если флажок установлен, то модули встроенного
языка сравниваются в разрезе отдельных методов, которые содержатся в модуле. В противном
случае модули сравниваются как один общий текст;
- Открыть редактор
сравнения/объединения (даже при отсутствии потенциальных проблем) —
установка этого флажка позволяет принудительно открыть редактор сравнения и
объединения конфигураций даже в том случае, если отсутствуют конфликтные изменения.
Это может быть полезно в том случае, когда хочется визуально проконтролировать
изменения, вносимые в текущую конфигурацию.
- Внешние настройки
объединения — путь к файлу, в котором хранятся настройки объединения
конфигураций, сохраненные ранее из редактора сравнения и объединения
конфигураций.