GIT Cherry-pick - Når og hvordan bruker jeg GIT Cherry-pick med eksempel?

Innholdsfortegnelse:

Anonim

Introduksjon til GIT Cherry-pick

I denne artikkelen skal vi lære mer om GIT Cherry-pick i detalj. Det er mange programmerere som jobber med den samme programvareutviklingen fra forskjellige hjørner av verden. Så hvordan håndtere kodene? Hvordan de vil få andre til å forstå hvilke endringer de har gjort? Hvordan forplikte kodene og vedlikeholde forskjellige versjoner? Hvordan slå sammen kodene?

For å løse disse problemene kom GIT inn i utviklingsverdenen. GIT er et fremragende Source Code Management (SCM) og distribuert versjonskontrollsystem. GIT ble opprettet av Linux Torvald, personen som utviklet Linux-kjernen. Det er klart det er et åpen kildekodeverktøy der enhver programmerer kan bidra til å bygge et programvare fra hvor som helst i verden.

GIT har mange funksjoner. Det kan ha flere grener. En utvikler kan skrive koder etter å ha opprettet sin egen gren i det lokale systemet og slå det sammen med hovedgrenen eller andre grener i det eksterne GIT-depotet.

Hva er GIT Cherry-pick?

Tenk deg at prosjektarbeid pågår for å skrive et manus om mobilenes historie og utvikling. Så det er mange som jobber med det samme prosjektet, og alle jobber hver for seg. Til slutt vil alles manus bli samlet sammen.

Nå skriver medlem A om Apple-telefoner og innser plutselig at det kan være bedre. Så han informerte om saken til de andre teammedlemmene som jobber med det samme prosjektet. Et annet medlem X fortalte at han skrev et manus på Android-telefoner og ba medlem A ta en titt.

Deretter tittet medlem A i lagkameratens manus og fant ut at noen av delene er de samme med noen endringer som er veldig gode. Derfor kirsebærplukket han disse endringene og limte inn i sitt eget manus. Dette er det samme som cherry-pick kalte i GIT når det gjelder programvare-kodingsindustrien.

Git-cherry-pick er en kraftig git-kommando, og cherry-picking er en prosess for å hente en engasjement fra en gren og bruke den til en annen gren. Med enkle ord kan det være flere grener der utviklere begår koder. Nå antok en utvikler å begå kodene sine i gren A, men han begikk kodene i gren B ved en feiltakelse. Den gangen cherry-pick kan bytte tilbake forpliktelsen til riktig gren.

Bruk kommandoen nedenfor (i Unix-systemet) for å kjenne til forskjellige alternativer for git-cherry-pick,

Kommando:

$man git-cherry-pick

Syntaksen for cherry-pick kommando,

syntaks:

git cherry-pick (–edit) (-n) (-m parent-number) (-x)

Når vi bruker GIT Cherry-pick?

Git-cherry-pick er et nyttig verktøy, men ikke en god praksis for hele tiden. git-cherry-pick kan brukes i de følgende scenariene,

  • For å gjøre det riktig når en forpliktelse gjort i en annen gren ved et uhell.
  • Foretrukne tradisjonelle sammenslåinger
  • Å bruke endringene i en eksisterende forpliktelse.
  • Duplikat forplikte
  • Feilfiksing

Hvordan fungerer GIT Cherry-pick?

En feil funnet i koden i produksjonsmiljøet og en løsning må implementeres. Når endringen er implementert og en mangel er fikset, er det nå på tide å bringe denne kodeendringen tilbake i utviklingsmiljøet, slik at mangelen ikke vil oppstå igjen og igjen i produksjonsmiljøet i fremtiden.

Det første alternativet er en enkel git fusjon og det er en ideell løsning hvis den fungerer. Imidlertid er det andre endringer gjort i produksjonsmiljøet, og de kan ikke bringes tilbake til utviklingsmiljøet mens de slås sammen. Og i så fall er kirsebærplukk det riktige alternativet.

Cherry-pick bringer den forpliktelsen som bare ble laget for feilrettelse. Det velger ikke de andre forplikter.

Her er en illustrasjon,

Fig 1: G og H er produksjonsgrenens forpliktelser. A til F Development filial forplikter. Et problem finnes i produksjonsgrenen. Det utvikles en løsning i H commit som må gjelde i utviklingsgrenen, men forpliktelse G kreves ikke anvendt.

Fig. 2: Nå blir forpliktelse H valgt med kirsebær på utviklingsgrenen og den resulterende forpliktelsen er H '. Forpliktelse G-endringer er ikke inkludert i utviklingsgrenen.

Hvordan bruke GIT Cherry-pick med eksempel?

Anta at vi har to grener (master og new_feature) (kommando som brukes til å se gren-git grenen)

Vi gjorde forpliktelsen (fremhevet) i den nye filialgrenen ved en feiltakelse. (kommandoen brukes til å se de engasjerte loggene-git-loggen)

Imidlertid antok den å være i hovedgrenen. Kopier først det uthevede SHA i en notisblokk.

Nå vil vi bruke en git-cherry-pick-kommando for å flytte denne forpliktelsen til master branch, men før det må vi bytte til master branch (kommando brukes til å bytte gren-git kassa < grenavn > )

(kommando brukt git - cherry - pick < commit id > ) (samme SHA skal lime inn som ble kopiert til notisblokk tidligere med git cherry-pick-kommando)

Nå kan vi se at den samme forpliktelsen er tilgjengelig i hovedgrenen (kommandoen brukt-git-logg)

For mer eksempel på git cherry-pick-kommandoer, vennligst se lenken nedenfor,

https://git-scm.com/docs/git-cherry-pick

Viktige ting å huske

Tre ting må huskes mens du bruker kirsebærplukk og jobber i et team.

1. standardisere engasjementsmelding: Det er bedre å bruke standardisere engasjementsmelding og -x hvis vi cherry-pick fra en offentlig gren.

git cherry-pick -x

Det vil unngå sammenslåing av konflikter i fremtiden.

2. kopier over notatene: Noen ganger har noen av cherry-pick-lapper, og når vi kjører cherry-pick, blir ikke notatene kopiert. Derfor er det bedre å bruke det.

git notes copy

3. C herry-pick multiple commits når de bare er lineære: Vi ønsker å cherry-pick flere commits som G, H (Fig 1), hvis de er lineære, bruk bare kommandoen nedenfor,

git cherry-pick G^..H

Konklusjon

Anta at vi ønsker å hente en spesifikk forpliktelse fra en annen gren og gjelde den nåværende grenen, her er trinn anbefalt,

1. Finn den begivenhets-hasj som må plukkes med kirsebær først.

2. Gå til destinasjonsgrenen.

3. git cherry-pick -x

Løs konfliktene hvis de skjer. Hvis det er notater i den opprinnelige forpliktelsen, må de kopieres.

git notes copy

Anbefalte artikler

Dette er en guide til GIT Cherry-pick. Her diskuterer vi dets arbeid og hvordan du bruker git cherry-pick med eksempler i detalj. Du kan også se på følgende artikler for å lære mer -

  1. Git Tools
  2. Git terminologi
  3. Git Checkout-kode
  4. Hva er Git Branch?