Interaktiv rebasing af historikken
Brug interaktiv rebase til at omskrive commit-historikken, samle commits, ændre rækkefølgen eller redigere meddelelser, før De pusher.
Interaktiv rebasing af historikken er en gratis Intensiv DevOps-uddannelse-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Intensiv DevOps-uddannelse, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Intensiv DevOps-uddannelse-kurset indeholder 4 lektioner i alt.
Mød interaktiv rebase
Velkommen til et kraftfuldt Git-værktøj: interaktiv rebase! Det giver dig mulighed for at omskrive dit projekts commit-historik, før du deler den med andre.
Tænk på det som en tidsmaskine til dine commits, der lader dig rydde op i, samle eller omarrangere ændringer for at skabe en klar, lineær fortælling om dit arbejde.
Hvorfor rydde op i historikken?
Hvorfor skulle du ønske at omskrive historikken?
- Klarhed: Gør dit projekts commit-log nem at læse og forstå.
- Kortfattethed: Saml små, trinvise commits til én meningsfuld ændring.
- Fejlfinding: En ren historik hjælper, når du bruger værktøjer som
git bisecttil at finde ud af, hvor en fejl blev introduceret. - Bedre pull requests: Præsenter et gennemarbejdet sæt ændringer for dine samarbejdspartnere.
Start interaktiv rebase
For at starte en interaktiv rebase bruger du kommandoen git rebase -i. Du skal angive, hvor langt tilbage du vil gå.
Hvis du for eksempel vil rebase de seneste 3 commits på din aktuelle gren, bruger du:
git rebase -i HEAD~3Det åbner en editor, der viser dine seneste 3 commits og de tilgængelige kommandoer.
Kommandoerne i rebase-editoren
Når du starter en interaktiv rebase, åbner Git en teksteditor med en liste over commits og instruktioner. Hver commit begynder med en kommando:
pick: Brug committen, som den er.reword: Brug committen, men redigér dens besked.edit: Brug committen, men sæt processen på pause for at ændre den.squash: Slå committen sammen med den forrige, og flet beskederne.fixup: Slå committen sammen med den forrige, og kassér denne commits besked.drop: Fjern committen helt.
Eksempel: Omskrivning af en commitbesked
Lad os sige, at du har lavet en slåfejl i en commitbesked. Du kan bruge reword til at rette den. Skift pick til reword ud for den commit, du vil ændre:
pick 5a6b7c8 Add new feature pick 1d2e3f4 Fix typo in docs reword 9g0h1i2 Implement login screen
Når du har gemt og lukket editoren, beder Git dig om at redigere beskeden for committen 9g0h1i2.
Eksempel: Sammenlægning af commits
Ofte laver du flere små, relaterede commits, som kunne være én samlet commit. Brug squash til at slå dem sammen.
pick a1b2c3d Initial feature commit squash e4f5g6h Add more details fixup i7j8k9l Fix small bug
Her bliver e4f5g6h flettet ind i a1b2c3d, og deres beskeder bliver slået sammen. i7j8k9l bliver også flettet ind i a1b2c3d, men dens besked bliver kasseret (fixup).
Eksempel: Fjernelse af commits
Hvis du har en eksperimentel commit, som du ikke længere har brug for, kan du blot bruge drop til at fjerne den fra historikken. Skift pick til drop, eller slet hele linjen:
pick 1122334 Initial setup drop 5566778 Test experimental feature pick 9900112 Add user authentication
Når du har gemt, bliver committen 5566778 fjernet helt fra din grens historik.
Eksempel: Omarrangering af commits
Du kan også ændre rækkefølgen af commits. Klip og indsæt blot linjer i editoren for at arrangere dem anderledes. Git anvender ændringerne i den nye rækkefølge.
Oprindelig rækkefølge:
pick abcdef1 Add feature A pick 1234567 Add feature B
Ny rækkefølge:
pick 1234567 Add feature B pick abcdef1 Add feature A
Vær forsigtig, da en ændret rækkefølge kan føre til konflikter, hvis commits afhænger af hinanden.
Den gyldne regel: Rebas ikke delt historik!
Dette er afgørende: Rebas aldrig commits, der allerede er blevet pushet til et delt remote-lager (for eksempel GitHub eller GitLab), og som andre muligvis har hentet.
Rebase omskriver commit-id'er. Hvis andre har baseret deres arbejde på de oprindelige commits, vil dine rebasede commits fremstå som en helt anden historik, hvilket skaber store konflikter og forvirring for alle involverede.
Rebas kun commits, der udelukkende findes på din lokale gren!
Kontrol af rebase-kommandoer
Du har tre commits: A (Initial), B (Minor fix), C (Refactor). Du vil samle B i A, bevare As oprindelige besked og derefter lade C være uændret. Hvilke kommandoer vil du bruge i den interaktive rebase-editor (fra ældst til nyest)?
Opsamling: Interaktiv rebase
Du har lært om den kraftfulde kommando git rebase -i!
- Den giver dig mulighed for at omskrive din lokale commit-historik.
- Du kan bruge
rewordtil beskeder,squashellerfixuptil commits,droptil uønskede ændringer og endda omarrangere commits. - Husk altid den gyldne regel: Rebas ALDRIG commits, der allerede er blevet pushet til et delt remote-lager.
Når du mestrer interaktiv rebase, bliver det lettere at vedligeholde en ren og forståelig projekthistorik!
Lær Intensiv DevOps-uddannelse 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
- 142
- Lektioner
- 568
Ofte stillede spørgsmål
Er lektionen “Interaktiv rebasing af historikken” gratis?
Ja — alle 3 lektioner i læringssporet Intensiv DevOps-uddannelse, inklusive “Interaktiv rebasing af historikken”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Intensiv DevOps-uddannelse-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Interaktiv rebasing af historikken”?
Brug interaktiv rebase til at omskrive commit-historikken, samle commits, ændre rækkefølgen eller redigere meddelelser, før De pusher. Du øver dig i Intensiv DevOps-uddannelse 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å Intensiv DevOps-uddannelse?
Der kræves ingen tidligere erfaring. Intensiv DevOps-uddannelse 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 2 af 4.
Hvor lang tid tager lektionen “Interaktiv rebasing af historikken”?
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 Intensiv DevOps-uddannelse-lektion?
Ja. Alle Intensiv DevOps-uddannelse-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
- Manuel løsning af merge-konflikter
- Interaktiv rebasing af historikken
- Cherry-picking af commits
- Genbrug konfliktløsninger med Git Rerere