Sobes.tech
Junior

Какво е cherry-pick?

sobes.tech AI

Отговор от AI

git cherry-pick се използва за прехвърляне на един или няколко комита от една клонка към друга.

Принцип на работа:

  1. Избира посочения комит (или комити) в изходната клонка.
  2. Прилага промените, съдържащи се в тези комити, към текущата активна клонка.
  3. Създава нови комити в текущата клонка с същите промени и съобщения като оригиналните.

Кога да се използва:

  • Прехвърляне на конкретна корекция на грешка от една клонка (например, production) към друга (например, development), без да се засягат други промени.
  • Прилагане на промени от една feature клонка към друга, без да ги сливате напълно.
  • Отмяна на неправилни merge операции, като се запазят отделните комити.

Разлики с merge и rebase:

  • merge: Обединява цялата история на промените от една клонка с друга.
  • rebase: Пренаписва историята на комитите, преместването им на нова база.
  • cherry-pick: Прилага само избрани комити, създавайки нови и без да променя историята на оригиналните комити.

Основна команда:

# Прехвърляне на един комит
git cherry-pick <commit-hash>

# Прехвърляне на няколко комита (в реда на тяхното посочване)
git cherry-pick <commit-hash-1> <commit-hash-2> ...

Пример:

Да предположим, че има две клонки: main и feature. В клонката feature е направен комит fix-typo. Трябва да прехвърлим този комит в клонката main.

# Превключване към целевата клонка
git checkout main

# Изпълнение на cherry-pick с хеша на комита от клонката feature
git cherry-pick 7f3bca2 # Примерен хеш

След изпълнение на командата, в клонката main ще се появи нов комит със същите промени като fix-typo, но с друг хеш.