Git Cherry Pick

git cherry-pick on tehokas komento, joka mahdollistaa mielivaltaisten Git-kommittien poimimisen viittauksen perusteella ja liittämisen nykyiseen työ-HEADiin. Cherry picking tarkoittaa sitä, että poimitaan kommitointi yhdestä haarasta ja liitetään se toiseen haaraan. git cherry-pick voi olla hyödyllinen muutosten peruuttamisessa. Sanotaan esimerkiksi, että toimitus tehdään vahingossa väärään haaraan. Voit siirtyä oikeaan haaraan ja cherry-pickata commitin sinne, minne sen pitäisi kuulua.

Milloin kannattaa käyttää git cherry pickiä

git cherry-pick on hyödyllinen työkalu, mutta ei aina paras käytäntö. Cherry picking voi aiheuttaa päällekkäisiä committeja ja monissa skenaarioissa, joissa cherry picking toimisi, suositaan sen sijaan perinteisiä yhdistämisiä. Tämän sanottuaan git cherry-pick on kätevä työkalu muutamissa skenaarioissa…

Tiimiyhteistyö.

Usein tiimin yksittäiset jäsenet työskentelevät saman koodin parissa tai sen ympärillä. Ehkä uudella tuoteominaisuudella on backend- ja frontend-komponentti. Näiden kahden tuotesektorin välillä voi olla jaettua koodia. Ehkä backend-kehittäjä luo tietorakenteen, jota myös frontendin on hyödynnettävä. Frontend-kehittäjä voisi käyttää git cherry-pick-toimitusta valitakseen toimituksen, jossa tämä hypoteettinen tietorakenne luotiin. Tämä valinta antaisi frontend-kehittäjälle mahdollisuuden jatkaa projektin etenemistä omalla puolellaan.

Vikojen kuumakorjaukset

Kun löydetään virhe, on tärkeää toimittaa korjaus loppukäyttäjille mahdollisimman nopeasti. Esimerkkiskenaario,vaikkapa kehittäjä on aloittanut uuden ominaisuuden työstämisen. Uuden ominaisuuden kehittämisen aikana he havaitsevat jo olemassa olevan bugin. Kehittäjä luo nimenomaisen toimituksen, jolla tämä vika korjataan. Tämä uusi korjaussitoumus voidaan siirtää suoraan master-haaraan vian korjaamiseksi ennen kuin se vaikuttaa useampaan käyttäjään.

Muutosten peruuttaminen ja kadonneiden sitoumusten palauttaminen

Joskus feature-haara voi jäädä vanhentuneeksi eikä sitä yhdistetä master-haaraan. Joskus pull request saatetaan sulkea ilman yhdistämistä. Git ei koskaan menetä näitä kommitteja, ja komentojen kuten git log ja git reflog avulla ne voidaan löytää ja kerätä takaisin eloon.

Gitin cherry pickin käyttö

Käytön havainnollistamiseksi olettakaamme, että meillä on arkisto, jossa on seuraava haaran tila:

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

git cherry-pick käyttö on suoraviivaista ja se voidaan suorittaa seuraavasti:

git cherry-pick commitSha

Tässä esimerkissä commitSha on komitoviite. Voit etsiä commit-viitteen käyttämällä git log. Tässä esimerkissä olemme rakentaneet sanotaan, että haluaisimme käyttää master:ssä olevaa sitoumusta `f`. Ensin varmistamme, että työskentelemme master-haarassa.

git checkout master

Sitten suoritamme cherry-pickin seuraavalla komennolla:

git cherry-pick f

Kun se on suoritettu, Git-historiamme näyttää seuraavalta:

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

F commit on onnistuneesti poimittu master-haaraan

Esimerkkejä git cherry pick

git cherry pick voidaan myös välittää joitakin suoritusasetuksia.

-edit

Vaihtoehdon -edit välittäminen saa git:n pyytämään commit-viestin ennen kirsikanpoimintaoperaation soveltamista

--no-commit

Vaihtoehto --no-commit suorittaa kirsikanpoiminnan, mutta sen sijaan, että se tekisi uuden commitin, se siirtää kohdetoimituksen sisällön nykyisen haaran työhakemistoon.

--signoff

Vaihtoehto --signoff lisää ”signoff”-allekirjoitusrivin cherry-pick-commit-viestin loppuun

Näiden hyödyllisten vaihtoehtojen lisäksi git cherry-pick hyväksyy myös erilaisia yhdistämisstrategian vaihtoehtoja. Lue lisää näistä vaihtoehdoista git merge strategies -dokumentaatiosta.

Lisäksi git cherry-pick hyväksyy myös vaihtoehdon syötteen yhdistämisristiriitojen ratkaisua varten, tämä sisältää vaihtoehdot: --abort --continue ja --quit näitä vaihtoehtoja käsitellään syvällisemmin git merge ja git rebase -komentojen yhteydessä.

Yhteenveto

Cherry picking on tehokas ja kätevä komento, joka on uskomattoman hyödyllinen muutamissa skenaarioissa. Cherry pickingiä ei pidä käyttää väärin git merge:n tai git rebase:n sijasta. git log -komentoa tarvitaan auttamaan cherry pickattavien komentojen löytämisessä.

Vastaa

Sähköpostiosoitettasi ei julkaista.