logo

Git – Cherry Pick

git kirsebærplukking i git betyr å velge en commit fra en gren og bruke den til en annen gren. Dette er i motsetning til andre måter som f.eks slå sammen og forbikjøring som normalt bruker mange forpliktelser til en annen gren.

git cherry-pick er akkurat som rebasing , et avansert konsept og også en kraftig kommando. Den brukes hovedsakelig hvis du ikke vil slå sammen hele grenen og du vil ha noen av forpliktelsene.



Når skal du bruke kirsebærplukk?

Anta at en utvikler ikke klarer å gjenkjenne hvilken gren han er på, og ved en feiltakelse forplikter han seg til en annen gren i stedet for å forplikte seg til hovedgrenen. Nå for å fikse det, må han først løpe git show , deretter lagre commit, sjekk ut hovedgrenen, bruk en patch der, og commit med den samme commit-meldingen. Men alt dette kan gjøres automatisk ved å bruke bare én kommando, dvs. kirsebærplukking.

For å forstå bedre, se diagrammet nedenfor som følger:

Før Cherry Pick



Før Cherry Pick

string java erstatning
Etter Cherry Pick

Etter Cherry Pick

Kommandoen for Cherry-pick er som følger:



git cherry-pick>

Begå hasj: En commit-hash er en unik identifikator som genereres av Git. Hver commit har sin one commit-hash.

java erstatte alt

Merk: Mens du bruker denne kommandoen, sørg for at du er på grenen du vil bruke commit.

Hvordan å bruke plukke kirsebær?

Her er den trinnvise forklaringen av bruken av cherry-pick-kommandoen i det nedenfor opprettede prosjektet trinnvis vist nedenfor som følger:

Trinn 1: Åpning av git bash og opprette et nytt prosjekt kalt prøve og initialisere repoen ved å bruke det er varmt kommando.

Steg 2: Opprette en ' .tekst' fil ved hjelp av vi kommando til prosjektet la oss si en indeksfil og legge den til i eksempelprosjektet vårt og foreta en forpliktelse og skrive en forpliktelsesmelding før du trykker på Enter.

Merk: Etter å ha kjørt vi kommando , skriv :wq for å lagre og avslutte filen.

Man kan sjekke forpliktelsen din ved git logg kommando enkelt:

Trinn 3: Anta nå at vi har 2 versjoner, så lag 2 forskjellige grener ved å bruke git gren kommando og gå til en gren, la oss si 2 ved å bruke git utsjekking kommando.

Merk: Man kan enkelt se alle grenene ved å kjøre git branch-kommandoen som vist i diagrammet nedenfor.

Trinn 4: Anta nå at du vil jobbe med en ny funksjon, så å lage og legge til en ny funksjonsfil kan si feature.txt ved å bruke vi og Legg til kommando som vist nedenfor. Bekreft deretter endringene med en commit-melding.

string.format java-streng

Man kan sjekke forpliktelsen din ved git log kommando som vist nedenfor:

Det viser tydelig vår første commit hvor gren 1 er der, og i gren 2 har den flyttet seg lenger frem og vi jobber for tiden med funksjonen vår i gren 2

Trinn 5: Anta nå at vi fant en feil i funksjonen vår og at vi fikk vite at den samme feilen også er til stede i vår 1-gren.

Og nå prøver vi å fikse en feil eller et problem som vist nedenfor ved å legge til en fix.txt-fil, la oss anta og legge den til den gjeldende grenen, dvs. 2, og utføre de nødvendige endringene.

Sjekker våre endelige forpliktelser:

Trinn 6: Nå, vi har fikset feilen i gren 2, men vi må også legge til denne rettelsen til gren 1, men vi ønsker ikke å slå sammen denne grenen 2 inn i gren 1, fordi arbeidet fortsatt kan pågå med funksjonen.

Derfor, i dette scenariet, kan vi velge denne spesielle forpliktelsen. For å gjøre det, bare kopier hasj verdi uthevet i diagrammet ovenfor, flytt deretter til gren 1 ved å bruke checkout , og bruk deretter kommandoen kirsebærplukking og lim inn hashen vi nettopp kopierte.

Som det tydelig fremgår av ovenstående, så legger vi merke til at vi tidligere bare har index.txt før vi gjør cherry-picking, men nå har vi fix.txt-filen også i vår 1. gren.

Nå hvis vi prøver å sjekke git log –oneline , vil vi kunne se at forpliktelsen også kom i gren 1.

Noen viktige brukstilfeller for Cherry-pick

Følgende er noen vanlige bruksområder for Cherry-Pick:

sql datatyper
  1. Hvis du ved en feiltakelse foretar en commit i en feil gren, kan du bruke cherry-pick til å bruke de nødvendige endringene.
  2. Anta når den samme datastrukturen skal brukes av både frontend og backend av et prosjekt. Deretter kan en utvikler bruke cherry-pick til å velge forpliktelsen og bruke den til sin del av prosjektet.
  3. Når en feil blir funnet, er det avgjørende å formidle en rettelse til sluttkunder så raskt som forventet.
  4. Noen ganger kan en komponentgren bli gammel og ikke bli konvergert inn i hovedgrenen og forespørselen kan bli lukket, men siden git aldri mister disse forpliktelsene, kan den bli plukket ut og den ville være tilbake.

Ulemper med å bruke Cherry Pick

Cherry-pick bør ikke alltid brukes, da det kan forårsake kopiering og mange situasjoner der cherry-plukking ville fungere, konvensjonelle fusjoner er likt alt tatt i betraktning. Dessuten, i situasjonen der commitene fra 2 eller flere grener oppdaterer lignende kodelinjer med forskjellige substanser og velger en commit til den andre grenen, fører det også til konflikt.

Konklusjon

Gits cherry-pick-kommando er et kraftig verktøy for selektivt å bruke spesifikke forpliktelser mellom grener. Det er flott for å fikse feil og dele kode, men overbruk av det kan føre til problemer, spesielt når forpliktelser berører de samme kodelinjene. Så bruk den med omhu for å opprettholde en ren og effektiv kodehistorikk.