Interaktiv rebase og ændring af commits
Lær at omskrive historikken med `git rebase -i` for renere commits og bruge `git commit --amend` til at ændre den seneste commit
Interaktiv rebase og ændring af commits er en gratis Avanceret Git: Monorepoer, undermoduler og arbejdsgange-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Avanceret Git: Monorepoer, undermoduler og arbejdsgange, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Avanceret Git: Monorepoer, undermoduler og arbejdsgange-kurset indeholder 4 lektioner i alt.
Ryd op i din Git-historik
Git-historikken bliver let rodet — en glemt fil, en slåfejl i en meddelelse eller ti små commits, der burde være én. Git giver dig mulighed for at omskrive historikken, så du kan rydde op i den.
Redigering af din seneste commit
git commit --amend retter din seneste commit: Du kan ændre meddelelsen, tilføje glemte filer eller justere indholdet. Den erstatter den seneste commit med en mere overskuelig version.
Eksempel på redigering af en commit
Glemte du en fil lige efter, at du lavede en commit? Sæt den i staging, og kør derefter git commit --amend for at føje den til den seneste commit. Sådan ser forløbet ud.
# 1. Make some changes and commit
echo "Initial content" > file1.txt
git add file1.txt
git commit -m "Add file1"
# 2. Realize you forgot file2.txt
echo "More content" > file2.txt
git add file2.txt
# 3. Amend the last commit to include file2.txt
git commit --amend --no-editIntroduktion til interaktiv rebase
Har du brug for at rette commits længere tilbage end den seneste? Interaktiv rebase (git rebase -i) er en komplet editor til en række commits.
Kom godt i gang med rebase -i
Start en interaktiv rebase ved at angive en commit før det område, du vil arbejde med. Hvis du vil redigere de seneste tre commits, skal du bruge HEAD~3.
git rebase -i HEAD~3Rebase-kommandoer: Pick, Reword, Squash
Rebase-editoren viser commits med kommandoer, som du kan ændre: pick beholder den, reword redigerer meddelelsen, squash/fixup sammenfletter den med den forrige, og edit sætter processen på pause, så du kan redigere den.
Omdøbning af en commit-meddelelse
Hvis du vil ændre meddelelsen for en ældre commit, skal du ændre dens linje fra pick til reword i editoren. Git beder dig derefter om den nye meddelelse.
# Original rebase editor content:
# pick 8a9b3c4 Add initial feature
# pick d1e2f34 Fix typo in docs
# Change 'pick' to 'reword' for the first commit:
# reword 8a9b3c4 Add initial feature
# pick d1e2f34 Fix typo in docsSammenfletning af commits
Har du flere små commits, der hører sammen? squash samler dem i én meningsfuld commit — ændr linjerne under pick til squash.
# Original commits:
# pick abc1234 Add user registration form
# pick def5678 Add validation for email field
# pick ghi9012 Fix styling on form
# To squash the last two into the first:
# pick abc1234 Add user registration form
# squash def5678 Add validation for email field
# squash ghi9012 Fix styling on formRedigering af en ældre commit
Kommandoen edit sætter rebase-processen på pause ved en bestemt commit. Foretag ændringerne, kør git add, git commit --amend og derefter git rebase --continue.
Hvornår du skal være forsigtig med omskrivning
Omskrivning ændrer commit-id'er — det er sikkert for commits, der kun findes lokalt. Omskriv aldrig historik, der allerede er pushet og delt; det ødelægger dine samarbejdspartneres arbejde.
Hurtigt tjek: Omskrivning af historik
Du har lavet en commit med meddelelsen "Fix bug". Derefter opdager du, at du glemte at inkludere en lille fil i den commit. Hvilken Git-kommando er mest passende til at rette dette, hvis du antager, at du ikke har pushet committen endnu?
Opsummering: Renere commits
Opsummering: git commit --amend retter den seneste commit, mens git rebase -i omskriver en række — med mulighed for at omdøbe, sammenflette, rette eller redigere. Vær blot forsigtig på delte grene.
Lær Avanceret Git: Monorepoer, undermoduler og arbejdsgange med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 12
- Lektioner
- 48
Ofte stillede spørgsmål
Er lektionen “Interaktiv rebase og ændring af commits” gratis?
Ja — hele teksten til “Interaktiv rebase og ændring af commits” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Avanceret Git: Monorepoer, undermoduler og arbejdsgange-kurset, skal du opgradere til CoddyKit PRO. Avanceret Git: Monorepoer, undermoduler og arbejdsgange-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Interaktiv rebase og ændring af commits”?
Lær at omskrive historikken med `git rebase -i` for renere commits og bruge `git commit --amend` til at ændre den seneste commit Du øver dig i Avanceret Git: Monorepoer, undermoduler og arbejdsgange med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Avanceret Git: Monorepoer, undermoduler og arbejdsgange?
Der kræves ingen tidligere erfaring. Avanceret Git: Monorepoer, undermoduler og arbejdsgange på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.
Hvor lang tid tager lektionen “Interaktiv rebase og ændring af commits”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Avanceret Git: Monorepoer, undermoduler og arbejdsgange-lektion?
Ja. Alle Avanceret Git: Monorepoer, undermoduler og arbejdsgange-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Interaktiv rebase og ændring af commits
- Stashing og cherry-picking af ændringer
- Reflog til gendannelse
- Bisect: Find dårlige commits