Introduktion til GIT Cherry-pick
I denne artikel skal vi lære mere om GIT Cherry-pick i detaljer. Der er mange programmerere, der arbejder på den samme softwareudvikling fra forskellige hjørner af verden. Så hvordan administreres koderne? Hvordan de får andre til at forstå, hvilke ændringer de har foretaget? Hvordan begår man koderne og vedligeholder forskellige versioner? Sådan flettes koderne?
For at løse disse problemer kom GIT ind i udviklingsverdenen. GIT er et fremragende Source Code Management (SCM) og distribueret versionskontrolsystem. GIT blev oprettet af Linux Torvald, den person, der udviklede Linux-kernen. Det er klart, at det er et open source-værktøj, hvor enhver programmør kan bidrage til at opbygge et stykke software hvor som helst i verden.
GIT har mange funktioner. Det kan have flere grene. En udvikler kan skrive koder efter at have oprettet sin egen filial i det lokale system og fusionere det med mastergrenen eller andre grene i det eksterne GIT-arkiv.
Hvad er GIT Cherry-pick?
Forestil dig, projektarbejde foregår med at skrive et manuskript om historien og udviklingen af mobiltelefoner. Så der er mange mennesker, der arbejder på det samme projekt, og alle arbejder separat. I sidste ende vil alles script blive samlet sammen.
Nu skriver medlem A om Apple-telefoner og pludselig er klar over, at det kan være bedre. Så han informerede sagen til de andre teammedlemmer, der arbejder på det samme projekt. Et andet medlem X fortalte ham, at han skriver et script på Android-telefoner og bad medlem A om at kigge efter.
Derefter kiggede medlem A ind i holdkammeratets script og fandt ud af, at nogle af delene er ens med nogle ændringer, der er virkelig gode. Derfor valgte han kirsebær med disse ændringer og klistrede i sit eget script. Det er det samme, som cherry-pick kaldte i GIT i forbindelse med softwarekodningsindustrien.
Git-cherry-pick er en kraftig git-kommando, og cherry-picking er en proces til at hente en engagement fra en gren og anvende den til en anden filial. Med enkle ord kan der være flere grene, hvor udviklere forpligter deres koder. Nu skulle en udvikler antage at begå sine koder i filial A, men han begik koderne i filial B ved en fejltagelse. Den gang kirsebærpluk kan muligvis skifte engagement til den rigtige gren.
Brug kommando nedenfor (i Unix-system) til at kende forskellige muligheder for git-cherry-pick,
Kommando:
$man git-cherry-pick
Syntaksen til cherry-pick-kommando,
Syntaks:
git cherry-pick (–edit) (-n) (-m parent-number) (-x)
Når vi bruger GIT Cherry-pick?
Git-cherry-pick er et nyttigt værktøj, dog ikke en bedste praksis hele tiden. git-cherry-pick kan bruges i de følgende scenarier,
- For at gøre det korrekt, når en forpligtelse foretaget i en anden gren ved et uheld.
- Foretrukne traditionelle fusioner
- At anvende ændringerne i en eksisterende forpligtelse.
- Duplikatforpligtelse
- Fejlfinding
Hvordan fungerer GIT Cherry-pick?
En defekt, der findes i koden i produktionsmiljøet og en rettelse, skal implementeres. Når ændringen er implementeret og en fejl er rettet, er det nu på tide at bringe denne kodeændring tilbage i udviklingsmiljøet, så defekten ikke vil opstå igen og igen i produktionsmiljøet i fremtiden.
Den første mulighed er en simpel git-fusion, og det er en ideel løsning, hvis det fungerer. Der er dog også andre ændringer, der er foretaget i produktionsmiljøet, og de kan ikke bringes tilbage til udviklingsmiljøet, mens de fusioneres. Og i dette tilfælde er cherry-pick den rigtige mulighed.
Cherry-pick bringer den forpligtelse, der kun blev lavet til fejlrettelse. Det vælger ikke de andre forpligtelser.
Her er en illustration,
Fig. 1: G og H er produktionsgrenens forpligtelser. A til F Development filial forpligter sig. Et problem findes i produktionsgrenen. Der er udviklet en rettelse i H commit, som skal anvendes i udviklingsgrenen, men forpligtelse G kræves ikke anvendt.
Fig. 2: Forpligtelse H er nu kirsebærplukket i udviklingsgrenen, og den resulterende tilsagn er H '. Forpligtelse G-ændringer er ikke inkluderet i udviklingsgrenen.
Hvordan bruges GIT Cherry-pick med eksempel?
Antag, at vi har to grene (master og new_feature) (kommando brugt til at se branch-git grenen)
Vi forpligtede os (fremhævet) i den nye filialgren ved en fejltagelse. (kommando brugt til at se de engagerede logs-git log)
Det skulle dog kun være i mastergrenen. Kopier først det fremhævede SHA i et notesblok.
Nu vil vi bruge en git-cherry-pick-kommando til at flytte denne engagement til master branch, men inden vi skal skifte til master branch (kommando bruges til at skifte branch-git checkout < grenavn > )
(kommando brugt git - cherry - pick < commit id > ) (samme SHA skal indsættes, som blev kopieret til notepad tidligere med git cherry-pick-kommando)Nu kan vi se, at det samme engagement er tilgængeligt i mastergrenen (kommando used-git-log)
For mere eksempel på git cherry-pick-kommandoer, se venligst nedenstående link,
https://git-scm.com/docs/git-cherry-pick
Vigtige ting at huske
Tre ting skal huskes, mens du bruger kirsebærpluk og arbejder i et team.
1. standardiserer tilsagnsmeddelelse: Det er bedre at bruge standardiseret tilsagnsmeddelelse og -x, hvis vi cherry-pick fra en offentlig filial.
git cherry-pick -x
Det vil undgå sammenlægning af konflikter i fremtiden.
2. kopier over noterne: Nogle gange har nogle af kirsebærplukker noter, og når vi kører kirsebærpluk, bliver noterne ikke kopieret. Derfor er det bedre at bruge det.
git notes copy
3. C herry-pick multiple commits, når de kun er lineære: Vi ønsker at cherry-pick flere commits som G, H (Fig. 1), hvis de er lineære, skal du kun bruge kommandoen nedenfor,
git cherry-pick G^..H
Konklusion
Antag, at vi ønsker at hente et specifikt engagement fra en anden filial og anvende til den aktuelle filial, her anbefales trin,
1. Find det begivenheds-hash, der først skal kirsebærplukkes.
2. Gå til destinationsgrenen.
3. git cherry-pick -x
Løs konflikterne, hvis de sker. Hvis der er noter i den oprindelige forpligtelse, skal disse kopieres.
git notes copy
Anbefalede artikler
Dette er en guide til GIT Cherry-pick. Her diskuterer vi dets arbejde og hvordan man bruger git cherry-pick med eksempler i detaljer. Du kan også se på de følgende artikler for at lære mere -
- Git værktøjer
- Git-terminologi
- Git Checkout-tag
- Hvad er Git filial?