Cherry-picking av commits
Förstå hur du selektivt tillämpar enskilda commits från en branch på en annan med `git cherry-pick`.
Cherry-picking av commits är en gratis lektion i Professionellt arbetsflöde med Git och GitHub på CoddyKit. Detta är lektion 3 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Professionellt arbetsflöde med Git och GitHub, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Professionellt arbetsflöde med Git och GitHub innehåller totalt 4 lektioner.
Flytta commits selektivt
Vad gör ni om ni bara behöver en specifik ändring från en branch, inte hela branchen? git cherry-pick låter er tillämpa en enskild commit från valfri plats i repots historik direkt på den aktuella branchen.
Det är som att plocka ett enda körsbär från ett träd! Då skapas en helt ny commit på den aktuella branchen som duplicerar ändringarna från originalet.
När ska cherry-pick användas?
Föreställ er att ni arbetar på en stor feature-branch och upptäcker att en kritisk buggfix som ni gjorde där också behövs på er huvudsakliga produktionsbranch just nu. Ni vill ännu inte sammanfoga hela feature-branchen.
Det här är ett perfekt tillfälle att använda cherry-pick. Det hjälper er att flytta isolerade ändringar utan att ta med orelaterat arbete.
Det grundläggande kommandot
Det grundläggande kommandot är enkelt: git cherry-pick <commit-hash>.
- Kontrollera först att ni står på den branch där ni vill tillämpa committen.
- Sedan behöver ni den unika identifieraren (hashen) för committen ni vill välja.
- Git skapar därefter en ny commit med samma ändringar på den aktuella branchen.
git cherry-pick <commit-hash>Hitta commit-hashar
För att använda cherry-pick behöver ni hashen! Ni hittar den med git log.
Alternativet --oneline är mycket användbart för en översiktlig vy:
git log --onelineFörbered ett cherry-pick-scenario
Vi förbereder ett enkelt scenario. Vi skapar en main-branch och en feature/login-branch. Vi gör en commit på feature/login som vi vill ta med till main.
Vi vill ta med committen "HOTFIX" till 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ör cherry-pick
Byt nu tillbaka till branchen main och tillämpa committen "HOTFIX". Anta att hashen för "HOTFIX: Fix login button styling" var abcdefg.
Efter detta visas en ny commit på branchen main med samma ändringar som abcdefg. Använd git log --oneline för att se den!
git checkout main
git cherry-pick abcdefgHantera cherry-pick-konflikter
Precis som vid en merge kan cherry-pick leda till konflikter om samma kodrader har ändrats på olika sätt i de båda historikerna.
- Git pausar åtgärden och markerar de konfliktfyllda filerna.
- Lös konflikterna manuellt i filerna.
- Lägg till de lösta filerna med
git add. - Slutför med
git cherry-pick --continue.
# After resolving conflicts in editor:
git add .
git cherry-pick --continueVälj flera commits
Ni kan använda cherry-pick på flera commits samtidigt.
För att välja ett intervall av commits (från hashA till, men inte inklusive, hashB):
git cherry-pick hashA..hashBNär ska det användas (och inte användas)?
Cherry-pick är kraftfullt, men bör användas med eftertanke.
- Bra för: Hotfixar och att flytta små, isolerade ändringar mellan orelaterade brancher.
- Mindre lämpligt för: Regelbunden integrering av stora uppsättningar ändringar, eftersom det kan leda till duplicerade commits och göra historiken svårare att följa om ni inte är försiktiga. Föredra merge eller rebase för att integrera hela brancher.
Snabbkontroll: Syftet med cherry-pick
Ni har en commit på branchen feature/new-design som åtgärdar ett kritiskt stylingproblem. Ni behöver denna fix på branchen main omedelbart, utan att sammanfoga hela feature-branchen.
Repetition: Riktade ändringar
I den här lektionen har vi gått igenom git cherry-pick, ett användbart kommando för att tillämpa specifika commits på den aktuella branchen.
- Det skapar en ny commit med samma ändringar på målbranchen.
- Det passar utmärkt för hotfixar eller för att flytta isolerade ändringar.
- Ni behöver commitens hash, som vanligtvis hittas med
git log --oneline. - Var beredda på att lösa konflikter, precis som vid en merge.
När ni behärskar cherry-pick får ni exakt kontroll över projektets historik!
Lär dig Professionellt arbetsflöde med Git och GitHub med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 12
- Lektioner
- 48
Vanliga frågor
Är lektionen ”Cherry-picking av commits” gratis?
Ja – hela texten till ”Cherry-picking av commits” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Professionellt arbetsflöde med Git och GitHub, kan Ni uppgradera till CoddyKit PRO. Kursen i Professionellt arbetsflöde med Git och GitHub innehåller totalt 4 lektioner.
Vad lär jag mig i ”Cherry-picking av commits”?
Förstå hur du selektivt tillämpar enskilda commits från en branch på en annan med `git cherry-pick`. Ni övar på Professionellt arbetsflöde med Git och GitHub med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Professionellt arbetsflöde med Git och GitHub?
Du behöver inga förkunskaper. Utbildningen i Professionellt arbetsflöde med Git och GitHub på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.
Hur lång tid tar lektionen ”Cherry-picking av commits”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Professionellt arbetsflöde med Git och GitHub-lektionen?
Ja. Varje Professionellt arbetsflöde med Git och GitHub-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Manuell lösning av mergekonflikter
- Interaktiv rebase för historik
- Cherry-picking av commits
- Återanvänd konfliktlösningar med Git Rerere