Intensiv DevOps-uddannelse · Lektion

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.

Lektion 2 af 411 trin

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 bisect til 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~3

Det å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 reword til beskeder, squash eller fixup til commits, drop til 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!

Gratis at komme i gang

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

  1. Manuel løsning af merge-konflikter
  2. Interaktiv rebasing af historikken
  3. Cherry-picking af commits
  4. Genbrug konfliktløsninger med Git Rerere
← Tilbage til Intensiv DevOps-uddannelse