Cherry-Picking

Просунуте Git

Amanda Crawford-Adamo

Software and Data Engineer

Що таке cherry-pick?

Застосовує зміни з певного коміту до іншої гілки

Cherry-Pick одного коміту

git cherry-pick <commit-hash>

Cherry-Pick кількох комітів

git cherry-pick <hash1> <hash2> ..

Призначення

  • Застосовувати окремі виправлення багів між гілками
  • Відкотити фічі до стабільних версій
  • Вибірково застосовувати експериментальні зміни
  • Відновлювати втрачені коміти
Просунуте Git

Приклад Cherry-Pick

Граф гілок main і feature. У main два коміти. Гілка feature відгалужується від main після останнього коміту.

Два зображення з логами гілок main і feature до cherry-pick.

Просунуте Git

Процес Cherry-Pick

  1. Перейдіть на гілку main

    git checkout main
    
  2. Запустіть cherry-pick, щоб додати зміни коміту def456 з гілки feature.

    git cherry-pick def456
    

Граф гілок main і feature. У main три коміти. Гілка feature відгалужується після другого коміту й має ще два. Третій коміт main — це cherry-pick останнього коміту з feature.

Просунуте Git

Вирішення конфліктів під час cherry-pick

Кроки розвʼязання конфліктів
  1. Вручну відредагуйте конфліктні файли
  2. Додайте вирішені файли в індекс командою git add <resolved-files>
  3. Продовжте cherry-pick з прапорцем --continue
git cherry-pick --continue
Зупинка cherry-pick

Щоб зупинити cherry-pick, скористайтеся прапорцем --abort

git cherry-pick --abort
Просунуте Git

Коли використовувати cherry-pick

Коли корисно

  1. Застосування гарячих виправлень (hotfix)
  2. Тестування ізольованих фіч

Застереження

  1. Може створювати дублікати комітів
  2. За надмірного використання ускладнює історію проєкту
  3. Для великих змін краще зливати або робити rebase
Просунуте Git

Давайте потренуємось!

Просунуте Git

Preparing Video For Download...