Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
Visual Studio 2019 | Visual Studio 2022
Git cherry-pick копирует изменения из одной или нескольких исходных ветвей фиксации в целевую ветвь. В отличие от слияния или перебазы, выбор вишни позволяет выбрать определенные фиксации исходной ветви. Для каждой фиксации исходной ветви, выбранной вишней, Git создает соответствующую фиксацию в целевой ветви.
Вы можете выбрать вишню для решения этих распространенных задач:
Разверните определенную функцию из одной ветви в другую.
Скопируйте работу, зафиксированную в неправильной ветви.
Примените исправление ошибки к нескольким ветвям.
Общие сведения о рабочем процессе Git см . в руководстве по Azure Repos Git.
Azure Repos предоставляет ограниченную поддержку выбора вишни и только для создания запроса на вытягивание для применения исправления в целевой ветви. Дополнительные сведения см. в статье "Улучшение выбора вишни Azure DevOps".
Параметр " Выбор вишни" в меню запроса на вытягивание в Azure Repos выполняет следующие действия:
Создает новую ветвь раздела из целевой ветви запроса на вытягивание.
Вишня выбирает все изменения из исходной ветви запроса на вытягивание в новую ветвь раздела.
Предложит создать запрос на вытягивание, чтобы объединить новую ветвь раздела в другую целевую ветвь.
Веб-интерфейс GitHub не поддерживает выбор вишни, но GitHub Desktop делает. Пошаговые инструкции по выбору вишни в GitHub Desktop см. в разделе "Вишня- выбор фиксации".
Visual Studio 2022 предоставляет интерфейс управления версиями Git с помощью меню Git, изменений Git и контекстных меню в Обозреватель решений. Visual Studio 2019 версии 16.8 также предлагает пользовательский интерфейс Team Explorer Git. Дополнительные сведения см. на вкладке Visual Studio 2019 — Team Explorer .
В окне репозитория Git щелкните правой кнопкой мыши целевую ветвь и выберите пункт "Извлечь".
В представлении "Ветви" щелкните правой кнопкой мыши исходную ветвь и откройте вкладку "Журнал фиксации".
На вкладке "Журнал" щелкните правой кнопкой мыши фиксацию, которую вы хотите выбрать, и выберите "Вишни-Выбор". Visual Studio не поддерживает выбор вишни нескольких фиксаций за раз, поэтому вам потребуется повторить этот шаг для каждой фиксации, которую вы хотите выбрать вишни.
Visual Studio создает новую фиксацию целевой ветви, которая содержит изменения из выбранной вишни фиксации. Если операция выбора вишни не завершена успешно, Visual Studio уведомит вас.
Visual Studio 2019 предоставляет интерфейс управления версиями Git с помощью меню Git, изменений Git и контекстных меню в Обозреватель решений.
В окне репозитория Git щелкните правой кнопкой мыши целевую ветвь и выберите пункт "Извлечь".
В представлении "Ветви" щелкните правой кнопкой мыши исходную ветвь и откройте вкладку "Журнал фиксации".
На вкладке "Журнал" щелкните правой кнопкой мыши фиксацию, которую вы хотите выбрать, и выберите "Вишни-Выбор". Visual Studio не поддерживает выбор вишни нескольких фиксаций за раз, поэтому вам потребуется повторить этот шаг для каждой фиксации, которую вы хотите выбрать вишни.
Visual Studio создает новую фиксацию целевой ветви, которая содержит изменения из выбранной вишни фиксации. Если операция выбора вишни не завершена успешно, Visual Studio уведомит вас.
Visual Studio 2019 версии 16.8 и более поздних версий предоставляет интерфейс управления версиями Git при сохранении пользовательского интерфейса Team Explorer Git. Чтобы использовать Team Explorer, снимите флажок ">Параметры>предварительного просмотра возможностей>Git" в строке меню. Функции Git можно использовать из любого интерфейса взаимозаменяемо.
В Team Explorer нажмите кнопку "Главная " и выберите "Ветви".
В представлении "Ветви" щелкните правой кнопкой мыши целевую ветвь и выберите пункт "Извлечь".
В представлении "Ветви" щелкните правой кнопкой мыши исходную ветвь и откройте вкладку "Журнал фиксации".
На вкладке "Журнал" щелкните правой кнопкой мыши фиксацию, которую вы хотите выбрать, и выберите "Вишни-Выбор". 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 этапу и не зафиксировать изменения целевой ветви, используйте -n флаг:
git cherry-pick -n <commit1 ID> <commit2 ID>
Затем можно вручную создать одну фиксацию, чтобы содержать все изменения из операции выбора вишни.
Git уведомит вас о наличии конфликт слияния во время операции выбора вишни. Можно либо устранить конфликты , а затем запустить git cherry-pick --continueили отменить git cherry-pick --abort операцию выбора вишни.