Cherry-picking av commits
Forstå hvordan du selektivt bruker enkeltcommits fra én branch på en annen ved hjelp av `git cherry-pick`.
Cherry-picking av commits er en gratis leksjon i Profesjonell arbeidsflyt med Git og GitHub på CoddyKit. Dette er leksjon 3 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Profesjonell arbeidsflyt med Git og GitHub, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Profesjonell arbeidsflyt med Git og GitHub inneholder totalt 4 leksjoner.
Flytte commiter selektivt
Hva om De bare trenger én bestemt endring fra en branch, og ikke hele branchen? git cherry-pick lar Dem bruke én enkelt commit fra hvor som helst i repositoriets historikk direkte på den gjeldende branchen.
Det er som å plukke ett enkelt kirsebær fra et tre! Dette oppretter en helt ny commit på den gjeldende branchen, som gjentar endringene fra den opprinnelige.
Når bør De bruke cherry-pick?
Se for Dem at De arbeider på en stor feature-branch og oppdager at en kritisk feilretting De laget der, også trengs på hovedbranchen for produksjon med en gang. De vil ikke merge hele feature-branchen ennå.
Dette er et perfekt scenario for cherry-pick. Det hjelper Dem med å overføre isolerte endringer uten å ta med urelatert arbeid.
Den grunnleggende kommandoen
Den grunnleggende kommandoen er enkel: git cherry-pick <commit-hash>.
- Kontroller først at De står på branchen der De vil bruke commiten.
- Deretter trenger De den unike identifikatoren (hashen) til commiten De vil plukke.
- Git oppretter deretter en ny commit med de samme endringene på den gjeldende branchen.
git cherry-pick <commit-hash>Finne commit-hasher
For å bruke cherry-pick trenger De hashen! De kan finne den med git log.
Alternativet --oneline er svært nyttig for en kortfattet visning:
git log --onelineSette opp et cherry-pick-scenario
La oss sette opp et enkelt scenario. Vi oppretter en main-branch og en feature/login-branch. Vi lager en commit på feature/login som vi vil hente over til main.
Vi vil hente commiten «HOTFIX» til main.
git init my_project
cd my_project
echo "Initial content" > file.txt
git add file.txt
git commit -m "Initial commit"
git branch feature/login
git checkout feature/login
echo "Login feature added" >> login.txt
git add login.txt
git commit -m "Add basic login feature"
echo "Fix: Login button style" >> style.css
git add style.css
git commit -m "HOTFIX: Fix login button styling"Utføre cherry-pick
Bytt nå tilbake til main-branchen og bruk commiten «HOTFIX». La oss anta at hashen for «HOTFIX: Fix login button styling» var abcdefg.
Etter at De har kjørt dette, vises en ny commit på main-branchen med de samme endringene som abcdefg. Bruk git log --oneline for å se den!
git checkout main
git cherry-pick abcdefgHåndtere cherry-pick-konflikter
Akkurat som ved merging kan cherry-pick føre til konflikter hvis de samme kodelinjene er endret på ulike måter i de to historikkene.
- Git setter operasjonen på pause og markerer filene med konflikter.
- Løs konfliktene manuelt i filene.
- Bruk
git addpå de løste filene. - Fullfør med
git cherry-pick --continue.
# After resolving conflicts in editor:
git add .
git cherry-pick --continuePlukke flere commiter
De kan bruke cherry-pick på mer enn én commit om gangen.
For å plukke et område med commiter (fra hashA til, men ikke inkludert, hashB):
git cherry-pick hashA..hashBNår bør det brukes (og ikke brukes)?
Cherry-pick er kraftig, men bør brukes med omtanke.
- Egner seg til: Hotfixer og overføring av små, isolerte endringer mellom uavhengige brancher.
- Mindre egnet til: Regelmessig integrering av store mengder endringer, siden det kan føre til dupliserte commiter og gjøre historikken vanskeligere å følge hvis De ikke er forsiktig. Foretrekk merging eller rebasing ved integrering av hele brancher.
Kort kontroll: Formålet med cherry-pick
De har en commit på branchen feature/new-design som løser et kritisk stilproblem. De trenger denne rettelsen på main-branchen umiddelbart, uten å merge hele feature-branchen.
Oppsummering: Målrettede endringer
I denne leksjonen har vi lært om git cherry-pick, en nyttig kommando for å bruke bestemte commiter på den gjeldende branchen.
- Den oppretter en ny commit med de samme endringene på målbranchen.
- Den egner seg godt til hotfixer eller overføring av isolerte endringer.
- De trenger commitens hash, som vanligvis finnes med
git log --oneline. - Vær forberedt på å løse konflikter, akkurat som ved merging.
Når De mestrer cherry-pick, får De presis kontroll over prosjektets historikk!
Lær deg Profesjonell arbeidsflyt med Git og GitHub med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 12
- Leksjoner
- 48
Ofte stilte spørsmål
Er leksjonen «Cherry-picking av commits» gratis?
Ja – hele teksten i «Cherry-picking av commits» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Profesjonell arbeidsflyt med Git og GitHub-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Profesjonell arbeidsflyt med Git og GitHub inneholder totalt 4 leksjoner.
Hva lærer jeg i «Cherry-picking av commits»?
Forstå hvordan du selektivt bruker enkeltcommits fra én branch på en annen ved hjelp av `git cherry-pick`. Du øver på Profesjonell arbeidsflyt med Git og GitHub med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Profesjonell arbeidsflyt med Git og GitHub?
Ingen tidligere erfaring er nødvendig. Profesjonell arbeidsflyt med Git og GitHub på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.
Hvor lang tid tar leksjonen «Cherry-picking av commits»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Profesjonell arbeidsflyt med Git og GitHub-leksjonen?
Ja. Alle Profesjonell arbeidsflyt med Git og GitHub-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Manuell løsning av mergekonflikter
- Interaktiv rebasing av historikk
- Cherry-picking av commits
- Bruke Git Rerere til å gjenbruke konfliktløsninger