Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Grunderna i Rebase | Mer Avancerade Arbetsflöden
Github-Grunder

Grunderna i Rebase

Svep för att visa menyn

Skapa en commit på main-grenen

Vi börjar med att göra en commit direkt i den fjärranslutna main-grenen genom att redigera filen README.md i det fjärranslutna arkivet. Detta kommer att göra att main-grenen och feature/payment-grenen får en avvikande commit-historik.

Här är raden som lades till i filen:

New feature will soon be integrated.

Här är det aktuella commit-meddelandet:

Add information about new feature in README.md

Förstå grunderna i rebase

Som nämnts i föregående kapitel kan och bör feature-grenen slås samman tillbaka till main-grenen när den har granskats och testats. Hittills har vi endast använt kommandot git merge för detta ändamål. Ett annat tillvägagångssätt är dock att använda kommandot git rebase.

Note
Läs mer

Rebase är processen att flytta eller kombinera en sekvens av commits till en ny bas-commit. Detta görs genom att spela upp ändringarna från en gren på en annan gren, vilket resulterar i en linjär commit-historik.

När vi skapar en gren håller Git reda på den senaste commit på båda grenarna. Om endast en gren har nya ändringar kan Git snabbspola framåt och tillämpa ändringarna. Om båda grenarna har nya ändringar skapar Git en ny merge-commit, vilket resulterar i en trevägs-sammanslagning.

Så här skulle en trevägs-sammanslagning se ut i vårt fall, där C4 var den senaste commit på feature/payment-grenen innan sammanslagningen:

Trevägs-sammanfogning

Trevägs-sammanfogningar kan dock försvåra felsökning på grund av uppdelad, icke-linjär historik. Genom att använda rebase ändrar vi basen för våra commits och spelar upp dem ovanpå den nya basen, vilket gör att Git kan utföra en fast-forward-sammanfogning och behålla en linjär historik.

Här är en animation som illustrerar hur rebase kan utföras i vårt fall (commit-identifierarna motsvarar inte de verkliga här):

rebase
Note
Notering

När du rebasar en gren skriver du om dess historik. Det innebär att de gamla commiten ersätts med nya, som har olika identifierare (hashsummor) eftersom de baseras på andra ögonblicksbilder av koden. Som visas i animationen ovan ändrades identifieraren för committen på grenen feature/payment efter rebasingen.

question mark

Vad är huvudsyftet med att använda git rebase istället för git merge?

Vänligen välj det korrekta svaret

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 4

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Avsnitt 3. Kapitel 4
some-alt