Interaktiv rebase för historik
Använd interaktiv rebase för att skriva om commit-historiken, slå ihop commits, ändra ordning eller redigera meddelanden innan du pushar.
Interaktiv rebase för historik är en gratis lektion i Professionellt arbetsflöde med Git och GitHub på CoddyKit. Detta är lektion 2 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.
Lär känna interaktiv rebase
Välkomna till ett kraftfullt Git-verktyg: interaktiv rebase! Det låter er skriva om projektets commit-historik innan ni delar den med andra.
Tänk på det som en tidsmaskin för era commits, som låter er städa upp, slå ihop eller ändra ordningen på ändringar för att skapa en tydlig och linjär berättelse om ert arbete.
Varför städa upp historiken?
Varför skulle ni vilja skriva om historiken?
- Tydlighet: Gör projektets commit-logg lätt att läsa och förstå.
- Koncision: Slå ihop små, stegvisa commits till en enda meningsfull ändring.
- Felsökning: En ren historik underlättar när ni använder verktyg som
git bisectför att hitta var en bugg introducerades. - Bättre pull requests: Presentera en genomarbetad uppsättning ändringar för era medarbetare.
Starta en interaktiv rebase
För att starta en interaktiv rebase använder ni kommandot git rebase -i. Ni behöver ange hur långt bak ni vill gå.
Om ni till exempel vill göra rebase på de tre senaste commitsen på den aktuella branchen använder ni:
git rebase -i HEAD~3Då öppnas en editor som visar era tre senaste commits och tillgängliga kommandon.
Kommandona i rebase-editorn
När ni startar en interaktiv rebase öppnar Git en texteditor med en lista över commits och instruktioner. Varje commit börjar med ett kommando:
pick: Använd committen som den är.reword: Använd committen, men redigera meddelandet.edit: Använd committen, men pausa för att ändra den.squash: Slå ihop med föregående commit och sammanfoga meddelandena.fixup: Slå ihop med föregående commit och ta bort den här commitens meddelande.drop: Ta bort committen helt.
Exempel: Ändra ett commit-meddelande
Anta att ni har skrivit fel i ett commit-meddelande. Ni kan använda reword för att rätta det. Ändra pick till reword bredvid committen ni vill ändra:
pick 5a6b7c8 Add new feature pick 1d2e3f4 Fix typo in docs reword 9g0h1i2 Implement login screen
När ni har sparat och stängt editorn uppmanar Git er att redigera meddelandet för committen 9g0h1i2.
Exempel: Slå ihop commits
Ofta gör ni flera små, relaterade commits som egentligen kunde vara en enda. Använd squash för att slå ihop dem.
pick a1b2c3d Initial feature commit squash e4f5g6h Add more details fixup i7j8k9l Fix small bug
Här slås e4f5g6h ihop med a1b2c3d och deras meddelanden sammanfogas. i7j8k9l slås också ihop med a1b2c3d, men dess meddelande tas bort (fixup).
Exempel: Ta bort commits
Om ni har en experimentell commit som ni inte längre behöver kan ni helt enkelt drop-ta bort den från historiken. Ändra bara pick till drop eller ta bort raden helt:
pick 1122334 Initial setup drop 5566778 Test experimental feature pick 9900112 Add user authentication
När ni har sparat tas committen 5566778 bort helt från branchens historik.
Exempel: Ändra ordningen på commits
Ni kan också ändra ordningen på commits. Klipp helt enkelt ut och klistra in rader i editorn för att ordna om dem. Git tillämpar ändringarna i den nya ordningen.
Ursprunglig ordning:
pick abcdef1 Add feature A pick 1234567 Add feature B
Ny ordning:
pick 1234567 Add feature B pick abcdef1 Add feature A
Var försiktiga, eftersom en ändrad ordning kan orsaka konflikter om commits är beroende av varandra.
Den gyllene regeln: Gör aldrig rebase på delad historik!
Det här är avgörande: Gör aldrig rebase på commits som redan har pushats till ett delat fjärrrepo (som GitHub eller GitLab) och kan ha hämtats av andra.
Rebase skriver om commit-ID:n. Om andra har baserat sitt arbete på de ursprungliga commitsen kommer era rebased commits att se ut som en helt annan historik, vilket orsakar stora konflikter och förvirring för alla inblandade.
Gör bara rebase på commits som finns enbart på er lokala branch!
Kontroll av rebase-kommandon
Ni har tre commits: A (Initial), B (Minor fix), C (Refactor). Ni vill slå ihop B med A, behålla A:s ursprungliga meddelande och sedan behålla C som den är. Vilka kommandon skulle ni använda i den interaktiva rebase-editorn (från äldst till nyast)?
Repetition: Interaktiv rebase
Ni har lärt er om det kraftfulla kommandot git rebase -i!
- Det låter er skriva om den lokala commit-historiken.
- Ni kan använda
rewordför meddelanden,squashellerfixupför commits,dropför oönskade ändringar och även ändra ordningen på commits. - Kom alltid ihåg den gyllene regeln: GÖR ALDRIG REBASE PÅ COMMITS SOM REDAN HAR PUSHATS TILL ETT DELAT FJÄRRREPO.
När ni behärskar interaktiv rebase blir det lättare att hålla projektets historik ren och begriplig!
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 ”Interaktiv rebase för historik” gratis?
Ja – hela texten till ”Interaktiv rebase för historik” 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 ”Interaktiv rebase för historik”?
Använd interaktiv rebase för att skriva om commit-historiken, slå ihop commits, ändra ordning eller redigera meddelanden innan du pushar. 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 2 av 4.
Hur lång tid tar lektionen ”Interaktiv rebase för historik”?
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