Sobes.tech
Junior

Šta je cherry-pick?

sobes.tech АИ

Одговор од АИ

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

Принцип рада:

  1. Изабере одређени комит (или комитe) у изворној грани.
  2. Примењује промене садржане у тим комитима на тренутну активну грану.
  3. Креира нове комитe у тренутној грани са истим променама и порукама као и оригинални.

Када користити:

  • Пренос конкретне исправке грешке из једне гране (нпр. 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, али са другим хешем.