DevOps-bootcamp · Lektion

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.

Lektion 2 av 411 steg

Interaktiv rebase för historik är en gratis lektion i DevOps-bootcamp på CoddyKit. Detta är lektion 2 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för DevOps-bootcamp, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i DevOps-bootcamp 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 bisect fö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~3

Då ö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 reword för meddelanden, squash eller fixup för commits, drop fö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!

Gratis att börja

Lär dig DevOps-bootcamp 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
142
Lektioner
568

Vanliga frågor

Är lektionen ”Interaktiv rebase för historik” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen DevOps-bootcamp, inklusive ”Interaktiv rebase för historik”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i DevOps-bootcamp 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å DevOps-bootcamp 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 DevOps-bootcamp?

Du behöver inga förkunskaper. Utbildningen i DevOps-bootcamp 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 DevOps-bootcamp-lektionen?

Ja. Varje DevOps-bootcamp-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

  1. Manuell lösning av mergekonflikter
  2. Interaktiv rebase för historik
  3. Cherry-picking av commits
  4. Återanvänd konfliktlösningar med Git Rerere
← Tillbaka till DevOps-bootcamp