Bevezetés a GIT Cherry-pick-ba
Ebben a cikkben részletesen megismerjük a GIT Cherry-pick-ot. Sok programozó dolgozik ugyanazon szoftverfejlesztésen, a világ különböző szegleteiből. Akkor hogyan kell kezelni a kódokat? Hogyan fogják mások megérteni, milyen változtatásokat hajtottak végre? Hogyan állítsuk be a kódokat és tartsuk fenn a különböző verziókat? Hogyan lehet egyesíteni a kódokat?
E problémák megoldása érdekében a GIT belépett a fejlesztési világba. A GIT kiemelkedő forráskód-kezelő (SCM) és elosztott verziószabályozó rendszer. A GIT-t a Linux Torvald, a Linux kernel fejlesztõje hozta létre. Nyilvánvaló, hogy ez egy nyílt forrású eszköz, ahol minden programozó hozzájárulhat egy szoftver létrehozásához a világ bármely pontjáról.
A GIT számos funkcióval rendelkezik. Lehet, hogy több ága van. A fejlesztő kódot írhat miután létrehozta a saját ágát a helyi rendszerben, és összevonhatja azt a fő ággal vagy a távoli GIT-tárház más ágával.
Mi a GIT Cherry-pick?
Képzelje el, hogy a projekt munkája egy forgatókönyv írása a mobiltelefonok történetéről és fejlődéséről. Tehát sok ember dolgozik ugyanazon a projekten, és mindenki külön dolgozik. A végén azonban mindenkinek a forgatókönyve együtt lesz.
Az A tag most az Apple telefonokról ír, és hirtelen rájön, hogy jobb is lehet. Tehát tájékoztatta az ügyet a többi csapattagnak, akik ugyanazon a projekten dolgoznak. Egy másik X tag azt mondta neki, hogy forgatókönyvet ír az Android telefonokra, és felkérte az A tagot, hogy nézze meg.
Aztán az A tag megvizsgálta a csapattárs szkriptét és megállapította, hogy egyes részek megegyeznek néhány igazán jó változtatással. Ezért cserepesen választotta ki ezeket a változásokat, és beillesztette a saját forgatókönyvébe. Ugyanez az, amit a cseresznye-válogatás a GIT-ben hívott a szoftverkódoló iparban.
A cseresznye-cseresznye egy erőteljes git-parancs, a cseresznye-szedés pedig egy folyamat, amely során egy kötelezettségvállalást felvesznek egy ágaból, és alkalmazzák más ágakra. Egyszerű szavakkal, lehet több olyan ág, ahol a fejlesztők elkötelezik a kódjukat. Most egy fejlesztőnek feltételeznie kellett a kódok az A ágban történő elkötelezettségét, azonban tévedésből a B ágakban kötelezte el a kódot. Abban az időben a cseresznyeválasztás visszaválthatja a kötelezettségvállalást a megfelelő ágra.
Használja az alábbi parancsot (a Unix rendszerben), hogy megismerje a git-cherry-pick különféle lehetőségeit,
Parancs:
$man git-cherry-pick
A cseresznye-választ parancs szintaxisa,
Szintaxis:
git cherry-pick (–edit) (-n) (-m parent-number) (-x)
Amikor a GIT Cherry-pick-ot használjuk?
A cseresznyefajta hasznos eszköz, ám nem mindig a legjobb gyakorlat. A git-cherry-pick a következő forgatókönyvekben használható,
- Hogy helyrehozza, ha egy másik ágon véletlenül tett kötelezettségvállalást.
- Előnyben részesített egyesülések
- A változások alkalmazása egy meglévő kötelezettségvállalásban.
- Másolatot vállalni
- Hibajavítás
Hogyan működik a GIT Cherry-pick?
A gyártási környezetben található kód hibát és egy javítást végre kell hajtani. Miután a módosítást végrehajtották és a hibát kijavították, most itt az ideje, hogy visszautasítsák ezt a kódváltoztatást a fejlesztési környezetbe, hogy a hiba a jövőben nem fordul elő újra és újra a termelési környezetben.
Az első lehetőség egy egyszerű git egyesítés, és ideális megoldás, ha működik. A termelési környezetben azonban vannak más változások is, és ezeket nem lehet visszahozni a fejlesztési környezetbe egyesülés közben. És ebben az esetben a cseresznyeválasztás a megfelelő lehetőség.
A Cherry-pick azt a kötelezettségvállalást hozza, amelyet csak hibajavítás céljából tettek. Nem választja meg a többi kötelezettséget.
Itt egy illusztráció,
1. ábra: G és H a termelési ágazat kötelezettségvállalásai. A-tól a Fejlesztési ágazat vállal. Probléma van a termelési ágazatban. Javítás kerül kidolgozásra a H kötelezettségben, amelyet alkalmazni kell a Fejlesztési ágban, de a G kötelezettségvállalást nem kell alkalmazni.
2. ábra: Most a H elkötelezettséget cseresznyefélékkel választják ki a Fejlesztési ágon, és az eredményül kapott H elkötelezettség. A G kötelezettségvállalás változásai nem tartoznak a fejlesztési ágazatba.
Hogyan lehet használni a GIT Cherry-pick példát?
Tegyük fel, hogy két águnk van (master és new_feature) (a parancs segítségével láthatjuk a branch-git ágat)
A new_feature ágban tévedésből tettük (kiemelve) az elkötelezettséget. (parancs a lekötött naplók megtekintéséhez-git napló)
Azt kellett volna, hogy csak a mesterágban legyen. Először másolja a kiemelt SHA-t egy jegyzettömbbe.
Most egy git-cherry-pick parancsot használunk, hogy ezt az elkötelezettséget áthelyezzük a mesterágra, de mielőtt át kell állnunk a mesterágra (parancs válthatjuk a branch-git checkout < fióknév > )
Most láthatjuk, hogy ugyanaz a megbízás érhető el a mesterágban is (parancs használt-git napló)
A git cherry-pick parancsok további példájáért lásd az alábbi linket,
https://git-scm.com/docs/git-cherry-pick
Fontos szem előtt tartandó dolgok
Három dolgot kell megjegyezni, miközben cseresznye-válogatást használ és csapatban dolgozik.
1. szabványosítsa a kötelezettségvállalási üzenetet: Jobb a szabványosítási kötelezettségüzenet és -x használata, ha egy nyilvános fiókból választunk.
git cherry-pick -x
A jövőben elkerüli a konfliktusok összeolvadását.
2. Másolja át a jegyzeteket: Néhány cseresznyefajtánknak van jegyzetei, és amikor cseresznyefajtánkat futtatjuk, a jegyzetek nem másolódnak. Ezért jobb használni.
git notes copy
3. C herry-pick többszörös kötelezettségvállalás, ha csak lineáris: Olyan többszörös kötelezettségvállalást akarunk ábrázolni, mint G, H (1. ábra), ha lineárisak, akkor csak az alábbi parancsot kell használni,
git cherry-pick G^..H
Következtetés
Tegyük fel, hogy egy másik kötelezettségvállalást szeretnénk felvenni egy másik ágból, és alkalmazni kell az aktuális ágra, itt javasoljuk a lépéseket,
1. Keresse meg az elkötelezett hash-ot, amelyet először meg kell válogatni.
2. Menjen a rendeltetési ághoz.
3. git cherry-pick -x
Oldja meg a konfliktusokat, ha ezek bekövetkeznek. Ha vannak megjegyzések az eredeti kötelezettségvállalásban, akkor azokat lemásolni kell.
git notes copy
Ajánlott cikkek
Ez egy útmutató a GIT Cherry-pick-hoz. Itt részletesen példákkal tárgyaljuk annak működését és a git cherry-pick használatát. A következő cikkeket is megnézheti további információkért -
- Git Tools
- Git terminológia
- Git Checkout címke
- Mi a Git Branch?