Sobes.tech
Junior

Mi az a cherry-pick?

sobes.tech MI

Válasz az MI-től

A git cherry-pick egy vagy több commit áthelyezésére szolgál egyik ágról a másikra.

Működési elv:

  1. Kiválasztja a megadott commit(okat) a forrás ágon.
  2. Alkalmazza ezekben a commitokban szereplő változásokat az aktuális aktív ágra.
  3. Új commitokat hoz létre az aktuális ágon ugyanazzal a változtatással és üzenettel, mint az eredeti commitok.

Mikor használjuk:

  • Egy adott hibajavítás áthelyezése egyik ágról (pl. production) egy másikra (pl. fejlesztés), anélkül, hogy más változásokat érintene.
  • Változtatások alkalmazása egy feature-ágból egy másikba, anélkül, hogy teljesen összeolvasztanánk.
  • Hibás merge-ek visszavonása, miközben megőrizzük az egyes commitokat.

Különbség a merge és rebase-hez képest:

  • merge: Az egyik ág összes változásának történetét egyesíti a másikkal.
  • rebase: Átírja a commitok történetét, és egy új alapra helyezi őket.
  • cherry-pick: Csak kiválasztott commitokat alkalmaz, újakat hoz létre, és nem módosítja az eredeti commitok történetét.

Fő parancs:

# Egy commit áthelyezése
git cherry-pick <commit-hash>

# Több commit áthelyezése (a megadott sorrendben)
git cherry-pick <commit-hash-1> <commit-hash-2> ...

Példa:

Tegyük fel, hogy két ág van: main és feature. A feature ágon egy fix-typo commit készült. Ezt a commitot át kell helyezni a main ágra.

# Átváltás a cél ágra
git checkout main

# Cherry-pick végrehajtása a feature ágból származó commit hash-sel
git cherry-pick 7f3bca2 # Példa hash

A parancs végrehajtása után a main ágon megjelenik egy új commit ugyanazzal a változtatással, mint a fix-typo, de más hash-sel.