Git Cherry Pick

git cherry-pick egy hatékony parancs, amely lehetővé teszi tetszőleges Git commitok hivatkozással történő kiválasztását és hozzáadását az aktuális HEAD munkamenethez. A Cherry picking egy commit kiválasztása egy ágból, és egy másik ághoz való hozzáadása. A git cherry-pick hasznos lehet a változtatások visszavonásához. Például mondjuk, hogy egy commit véletlenül rossz ágba kerül. Átkapcsolhatsz a helyes ágra, és a cseresznyepiszkálással visszaviheted a commitot oda, ahová tartoznia kellene.

Mikor használd a git cseresznyepiszkálást

git cherry-pick hasznos eszköz, de nem mindig a legjobb gyakorlat. A cseresznyézés duplikált commitokat okozhat, és sok olyan forgatókönyvben, ahol a cseresznyézés működne, a hagyományos egyesítéseket kell helyette előnyben részesíteni. Ezzel együtt a git cherry-pick hasznos eszköz néhány forgatókönyvhöz…

Csapat együttműködése.

Gyakran előfordul, hogy egy csapat egyes tagjai ugyanazon a kódon vagy annak környékén dolgoznak. Talán egy új termékfunkciónak van egy backend és egy frontend komponense. Lehet, hogy van némi közös kód a két termékszektor között. Lehet, hogy a backend fejlesztő létrehoz egy adatstruktúrát, amelyet a frontendnek is használnia kell. A frontend-fejlesztő a git cherry-pick segítségével kiválaszthatja azt a commitot, amelyben ez a feltételezett adatstruktúra létrejött. Ez a választás lehetővé tenné a frontend-fejlesztő számára, hogy a projekt saját oldalán folytassa az előrehaladást.

Hibajavítások

Amikor egy hibát felfedeznek, fontos, hogy a lehető leggyorsabban átadják a javítást a végfelhasználóknak. Egy példa forgatókönyv,mondjuk egy fejlesztő elkezdett dolgozni egy új szolgáltatáson. Az új funkció fejlesztése során azonosítanak egy már meglévő hibát. A fejlesztő létrehoz egy explicit commitot a hiba javítására. Ez az új javítási commit közvetlenül a master ágba kerülhet, hogy kijavítsa a hibát, mielőtt az több felhasználót érintene.

Változások visszavonása és elveszett commitok visszaállítása

Néha előfordulhat, hogy egy feature ág elhalványul, és nem olvad be a master ágba. Néha előfordulhat, hogy egy pull request beolvasztás nélkül kerül lezárásra. A Git soha nem veszíti el ezeket a commitokat, és az olyan parancsok segítségével, mint a git log és git reflog megtalálhatók és visszahozhatók az életbe.

Hogyan használjuk a git cherry pick

Az git cherry-pick használatának bemutatásához tegyük fel, hogy van egy tárolónk a következő ágállapottal:

 a - b - c - d Master
\
e - f - g Feature

git cherry-pick használata egyszerű és a következőképpen hajtható végre:

git cherry-pick commitSha

Ebben a példában commitSha egy commit hivatkozás. A git log segítségével találhat meg egy commit-hivatkozást. Ebben a példában konstruáltunk mondjuk, hogy a master-ben lévő `f` commitot szeretnénk használni. Először is biztosítjuk, hogy a master ágon dolgozunk.

git checkout master

Ezt követően a következő paranccsal hajtjuk végre a cherry-pick-et:

git cherry-pick f

A végrehajtás után a Git-történetünk így fog kinézni:

 a - b - c - d - f Master
\
e - f - g Feature

A f commit sikeresen át lett szedve a master ágba

A git cherry pick

git cherry pick példájára átadhatunk néhány végrehajtási opciót is.

-edit

A -edit opció átadása hatására a git a cherry-pick művelet végrehajtása előtt kér egy commit üzenetet

--no-commit

A --no-commit opció végrehajtja a cherry picket, de új commit készítése helyett a cél commit tartalmát az aktuális ág munkakönyvtárába helyezi át.

--signoff

A --signoff opció egy ‘signoff’ aláíró sort ad a cherry-pick commit üzenet végéhez

Az git cherry-pick ezen hasznos opciók mellett számos egyesítési stratégia opciót is elfogad. Ezekről az opciókról többet megtudhatsz a git merge strategies dokumentációban.

A git cherry-pick emellett elfogadja az egyesítési konfliktusok feloldásához szükséges opciókat is, ezek közé tartoznak az opciók: --abort --continue és --quit ezeket az opciókat a git merge és a git rebase kapcsán részletesebben tárgyaljuk.

Összegzés

A cseresznyézés egy hatékony és kényelmes parancs, amely hihetetlenül hasznos néhány forgatókönyvben. A Cherry pickinget nem szabad visszaélni a git merge vagy a git rebase helyett. A git log parancs szükséges, hogy segítsen megtalálni a cseresznyézéshez szükséges commitokat.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.