Git Cherry Pick

git cherry-pick är ett kraftfullt kommando som gör det möjligt att plocka godtyckliga Git-kommandon som referens och lägga till den aktuella arbetsheaden. Cherry picking är att plocka en commit från en gren och applicera den på en annan. git cherry-pick kan vara användbart för att ångra ändringar. Säg till exempel att en commit av misstag görs till fel gren. Du kan växla till den korrekta grenen och körsbärsplocka commit till den plats där den borde höra hemma.

När du ska använda git cherry pick

git cherry-pick är ett användbart verktyg men inte alltid en bästa praxis. Cherry picking kan orsaka dubbla commits och många scenarier där cherry picking skulle fungera är traditionella sammanslagningar att föredra istället. Med det sagt är git cherry-pick ett praktiskt verktyg för några få scenarier…

Teamsamarbete.

Ofta kommer ett team att hitta enskilda medlemmar som arbetar i eller kring samma kod. Kanske har en ny produktfunktion en backend- och frontendkomponent. Det kan finnas en del delad kod mellan till två produktsektorer. Kanske skapar backend-utvecklaren en datastruktur som frontend-utvecklaren också måste använda. Frontend-utvecklaren kan använda git cherry-pick för att välja den commit där denna hypotetiska datastruktur skapades. Detta val skulle göra det möjligt för frontend-utvecklaren att fortsätta att göra framsteg på sin sida av projektet.

Bug hotfixes

När ett fel upptäcks är det viktigt att leverera en fix till slutanvändarna så snabbt som möjligt. För ett exempel på ett scenario,säg att en utvecklare har börjat arbeta på en ny funktion. Under utvecklingen av den nya funktionen identifierar de ett redan befintligt fel. Utvecklaren skapar en explicit commit för att rätta till felet. Denna nya patch commit kan plockas direkt till master-grenen för att åtgärda felet innan det påverkar fler användare.

Ångra ändringar och återställa förlorade commits

Undertiden kan en feature-gren bli inaktuell och inte slås samman till master. Ibland kan en pull request stängas utan att den slås samman. Git förlorar aldrig dessa commits och genom kommandon som git log och git reflog kan de hittas och plockas tillbaka till livet.

Hur man använder git cherry pick

För att demonstrera hur man använder git cherry-pick låt oss anta att vi har ett arkiv med följande grenstatus:

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

git cherry-pick Användningen av git cherry-pick är enkel och kan exekveras på följande sätt:

git cherry-pick commitSha

I det här exemplet commitSha är en commitreferens. Du kan hitta en commitreferens genom att använda git log. I det här exemplet har vi konstruerat låt oss säga att vi vill använda commit `f` i master. Först ser vi till att vi arbetar på master-grenen.

git checkout master

Därefter utför vi cherry-pick med följande kommando:

git cherry-pick f

När det är utfört kommer vår Git-historik att se ut så här:

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

The f commit has been successfully picked into the master branch

Exempel på git cherry pick

git cherry pick kan också få några exekveringsalternativ.

-edit

Genom alternativet -edit kommer git att be om ett commitmeddelande innan körsbärsplockningen tillämpas

--no-commit

Optionen --no-commit kommer att exekvera körsbärsplockningen, men i stället för att göra en ny commit flyttas innehållet i målcommitten till arbetskatalogen för den aktuella grenen.

--signoff

Optionen --signoff kommer att lägga till en ”signoff”-signaturrad i slutet av meddelandet om körsbärsplockning

Inom dessa hjälpsamma alternativ accepterar git cherry-pick också en mängd olika sammanslagningsstrategialternativ. Läs mer om dessa alternativ i dokumentationen git merge strategies.

Tillfälligt accepterar git cherry-pick även alternativinmatning för lösning av sammanslagningskonflikter, detta inkluderar alternativ: --abort --continue och --quit dessa alternativ behandlas mer ingående när det gäller git merge och git rebase.

Sammanfattning

Cherry picking är ett kraftfullt och bekvämt kommando som är otroligt användbart i några få scenarier. Cherry picking bör inte missbrukas i stället för git merge eller git rebase. Kommandot git log krävs för att hjälpa till att hitta commits att cherry picka.

Lämna ett svar

Din e-postadress kommer inte publiceras.