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:
- Kiválasztja a megadott commit(okat) a forrás ágon.
- Alkalmazza ezekben a commitokban szereplő változásokat az aktuális aktív ágra.
- Ú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.