Azure DevOps Services | Azure DevOps Server 2022 г. - Azure DevOps Server 2019 г. | TFS 2018
Visual Studio 2019 | Visual Studio 2022
Git Cherry-pick копирует изменения из одной или нескольких фиксаций исходной ветви в целевую ветвь. В отличие от слияния или перебазовки, cherry-pick позволяет выбрать конкретные фиксации исходной ветви. Для каждой фиксации исходной ветви, которую вы выбираете, Git создает соответствующую фиксацию в целевой ветви.
Вы можете выбрать вишню для решения следующих распространенных задач:
Развертывание определенной функции из одной ветви в другую.
Копирование работы, зафиксированной в неправильной ветви.
Примените исправление ошибок к нескольким ветвям.
Общие сведения о рабочем процессе Git см. в Azure Repos учебнике по Git.
Azure Repos предоставляет ограниченную поддержку выбора вишни и только для создания запроса на вытягивание для применения исправления в целевой ветви. Дополнительные сведения см. в статье Улучшение выбора вишни Azure DevOps.
Параметр Cherry-pick в меню запроса на вытягивание в Azure Repos выполняет следующие действия:
Создает новую ветвь раздела из целевой ветви запроса на вытягивание.
Cherry выбирает все изменения из исходной ветви запроса на вытягивание в новую ветвь раздела.
Предлагает создать новый запрос на вытягивание, чтобы объединить новую ветвь раздела в другую целевую ветвь.
Веб-интерфейс GitHub не поддерживает выбор вишни, но это делает GitHub Desktop . Пошаговые инструкции по выбору вишни в GitHub Desktop см. в статье Выбор фиксации в черри.
Visual Studio 2022 предоставляет возможности управления версиями Git с помощью меню Git, изменений Git и контекстных меню в Обозреватель решений. Visual Studio 2019 версии 16.8 также предлагает пользовательский интерфейс Git для команды Обозреватель. Дополнительные сведения см. на вкладке Visual Studio 2019 — team Обозреватель.
Выберите Управление ветвями Git>, чтобы открыть окно Репозиторий Git.
В окне Репозиторий Git щелкните правой кнопкой мыши целевую ветвь и выберите Извлечь.
В представлении Ветви щелкните правой кнопкой мыши исходную ветвь и выберите Просмотр журнала , чтобы открыть вкладку Журнал фиксаций.
На вкладке Журнал щелкните правой кнопкой мыши фиксацию, которую вы хотите выбрать, и выберите Cherry-Pick. Visual Studio не поддерживает выбор нескольких фиксаций за раз, поэтому необходимо повторить этот шаг для каждой фиксации, которую вы хотите выбрать.
Visual Studio создает новую фиксацию целевой ветви, которая содержит изменения из выбранной фиксации вишни. Если операция выбора вишни не завершится успешно, Visual Studio уведомит вас.
Visual Studio 2019 предоставляет возможности управления версиями Git с помощью меню Git, изменений Git и контекстных меню в Обозреватель решений.
Выберите Управление ветвями Git>, чтобы открыть окно Репозиторий Git.
В окне Репозиторий Git щелкните правой кнопкой мыши целевую ветвь и выберите Извлечь.
В представлении Ветви щелкните правой кнопкой мыши исходную ветвь и выберите Просмотр журнала , чтобы открыть вкладку Журнал фиксаций.
На вкладке Журнал щелкните правой кнопкой мыши фиксацию, которую вы хотите выбрать, и выберите Cherry-Pick. Visual Studio не поддерживает выбор нескольких фиксаций за раз, поэтому необходимо повторить этот шаг для каждой фиксации, которую вы хотите выбрать.
Visual Studio создает новую фиксацию целевой ветви, которая содержит изменения из выбранной фиксации вишни. Если операция выбора вишни не завершится успешно, Visual Studio уведомит вас.
Visual Studio 2019 версии 16.8 и более поздних версий предоставляет возможности управления версиями Git, сохраняя при этом пользовательский интерфейс Team Обозреватель Git. Чтобы использовать командную Обозреватель, снимите флажок Сервис>Параметры>Предварительные версии функций>Новый пользовательский интерфейс Git в строке меню. Функции Git можно использовать из любого интерфейса взаимозаменяемо.
В командной Обозреватель нажмите кнопку Домой и выберите Ветви.
В представлении Ветви щелкните правой кнопкой мыши целевую ветвь и выберите Пункт Извлечь.
В представлении Ветви щелкните правой кнопкой мыши исходную ветвь и выберите Просмотр журнала , чтобы открыть вкладку Журнал фиксаций.
На вкладке Журнал щелкните правой кнопкой мыши фиксацию, которую вы хотите выбрать, и выберите Cherry-Pick. Visual Studio не поддерживает выбор нескольких фиксаций за раз, поэтому необходимо повторить этот шаг для каждой фиксации, которую вы хотите выбрать.
Visual Studio создает новую фиксацию целевой ветви, которая содержит изменения из выбранной фиксации вишни. Если операция выбора вишни не завершится успешно, Visual Studio уведомит вас.
Используйте команду , git log чтобы получить список фиксаций исходной ветви. Флаг --oneline сокращает сведения о фиксации.
git log --oneline <source branch>
Git сначала перечисляет самые последние фиксации. Каждый ИД фиксации является частичным хэшом SHA-1, который уникальным образом идентифицирует фиксацию. Например:
e745d06 (HEAD -> add-network-controller) Add a test initialization class
a89f48e (origin/add-network-controller) Add fiber optic transceiver test
31da50b Add network switch test
e74baa2 (origin/main, origin/HEAD, test-fiber-optic-transmitter, main) Add readme content
0c14391 Add readme file
32e3946 Add project files.
Запишите идентификатор фиксации, которую нужно выбрать.
Извлеките целевую ветвь, если она еще не извлечена.
git checkout <target branch>
Зафиксируйте, спряжите или отмените все незафиксированные изменения.
Чтобы выбрать одну фиксацию, выполните приведенные далее действия.
git cherry-pick <commit ID>
Чтобы выбрать несколько фиксаций, разделите идентификаторы фиксаций пробелами. Фиксации будут применяться в порядке их ввода:
При выборе нескольких фиксаций команда cherry-pick по умолчанию создает соответствующую последовательность фиксаций новой целевой ветви. Чтобы сообщить Git о том, что нужно выполнить этап и не фиксировать изменения целевой ветви, используйте -n флаг :
git cherry-pick -n <commit1 ID> <commit2 ID>
Затем можно вручную создать одну фиксацию, содержащую все изменения, внесенные в операцию выбора вишни.
Git уведомит вас о наличии конфликтов слияния во время операции выбора вишни. Вы можете разрешить конфликты , а затем запустить git cherry-pick --continueили выполнить команду git cherry-pick --abort , чтобы отменить операцию выбора вишни.