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