Sobes.tech
Junior

Co je cherry-pick v kontextu systémů správy verzí?

sobes.tech AI

Odpověď od AI

Git-ben a cherry-pick egy olyan művelet, amely lehetővé teszi, hogy egy adott commit változtatásait egy másik ágban alkalmazzuk. Ez akkor hasznos, ha egy adott javítást vagy funkciót szeretnénk átvinni egyik ágról a másikra anélkül, hogy az összes későbbi commitot át kellene vinni.

Alkalmazás:

  1. Commit kiválasztása: Meghatározzuk a commit hash értékét, amit "másolni" szeretnénk.
  2. Átváltás a célágra: Átváltunk arra az ágra, ahol a változtatásokat alkalmazni szeretnénk.
  3. A cherry-pick végrehajtása: A git cherry-pick <commit-hash> parancs futtatása. A Git megpróbálja alkalmazni a kiválasztott commit változtatásait az aktuális ágon.
# Átváltás a célágra
git checkout main

# Változtatások alkalmazása az abcdef1 hash-ű commit-ből
git cherry-pick abcdef1

Lehetséges felhasználási forgatókönyvek:

  • Hiba javítása egy régi kiadási ágon.
  • Egy adott funkció átadása a fejlesztési ágról staging vagy production környezetbe.
  • Változtatások visszavonása egy adott commit-ből (-n opcióval és később git revert-tel).

Különbségek a merge és rebase műveletekkel:

  • A merge egyesíti egy ág összes változtatását egy másikkal.
  • A rebase átviszi egy ág összes commitját egy másik fölé.
  • A cherry-pick csak egy kiválasztott commitot visz át, és ugyanazokat a változtatásokat tartalmazó új commitot hoz létre a cél ágon.

Fontos megjegyezni, hogy a cherry-pick egy új commitot hoz létre, más hash-sel. Ez duplikálhatja a változtatásokat, ha ugyanaz a commit később más módon kerül összevonásra a cél ággal. Óvatosan használja, és értse meg a következményeket.