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

Kursinnehåll

Github-Grunder

Github-Grunder

1. Introduktion till GitHub
2. Grundläggande Interaktion med Fjärrservrar
3. Mer Avancerade Arbetsflöden

book
Utföra en Rebase-Operation

Återbasera ändringar på main-grenen

Innan vi kan återbasera våra ändringar måste vi först byta till main-grenen och hämta de senaste ändringarna:

Låt oss nu titta på commit-trädet:

För närvarande har både main- och feature/payment-grenarna commits efter den senaste gemensamma förfadern. Detta innebär att en fast-forward-sammanslagning inte kan utföras.

Om vi skulle slå samman dessa grenar skulle en trevägssammanslagning ske. Eftersom vi vill behålla en linjär historik, ska vi istället återbasera feature/payment-grenen main-grenen. Detta görs genom att byta till feature/payment-grenen och köra kommandot git rebase:

Fast-forward-sammanslagning

Eftersom rebasen lyckades, låt oss titta på vårt commit-träd igen:

Som förväntat är commit-historiken nu linjär med den senaste commiten på feature/payment-grenen. Nu kan vi utföra en enkel fast-forward-sammanslagning till main-grenen:

Låt oss verifiera att båda grenarna pekar på samma commit genom att titta på den senaste commiten:

Ta bort funktionsgrenen

main-grenen innehåller nu den senaste committen med betalsystemet implementerat, så vi kan säkert ta bort både den lokala och den fjärranslutna feature/payment-grenen. Följande kommando tar bort fjärrgrenen:

Nu kan vi ta bort den lokala grenen:

Slutligen kan alla ändringar vi gjort skickas tillbaka till fjärrförvaret:

För att verifiera att feature-grenen har tagits bort både lokalt och på fjärrservern kan du köra följande kommando, som listar alla (-a står för alla) lokala och fjärrgrenar:

Som du kan se har feature/payment-grenen blivit borttagen, och det finns nu endast två grenar: main och john/test med deras fjärrmotsvarigheter.

Överlag fungerar rebase bra för lokala ändringar som ännu inte har delats, men det kan orsaka betydande problem för ändringar som redan har publicerats till ett fjärrrepository och eventuellt laddats ner av andra samarbetspartners. Att rebase:a commits som andra använder kan skapa förvirring och konflikter på grund av omskrivning av commit-historiken.

Som en allmän regel, undvik att rebase:a ändringar som har pushats till fjärrrepositoryn för att förhindra dessa problem.

question mark

Efter att ha rebase:at feature/paymentmain, varför utför git merge feature/payment en fast-forward-merge?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 5

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

course content

Kursinnehåll

Github-Grunder

Github-Grunder

1. Introduktion till GitHub
2. Grundläggande Interaktion med Fjärrservrar
3. Mer Avancerade Arbetsflöden

book
Utföra en Rebase-Operation

Återbasera ändringar på main-grenen

Innan vi kan återbasera våra ändringar måste vi först byta till main-grenen och hämta de senaste ändringarna:

Låt oss nu titta på commit-trädet:

För närvarande har både main- och feature/payment-grenarna commits efter den senaste gemensamma förfadern. Detta innebär att en fast-forward-sammanslagning inte kan utföras.

Om vi skulle slå samman dessa grenar skulle en trevägssammanslagning ske. Eftersom vi vill behålla en linjär historik, ska vi istället återbasera feature/payment-grenen main-grenen. Detta görs genom att byta till feature/payment-grenen och köra kommandot git rebase:

Fast-forward-sammanslagning

Eftersom rebasen lyckades, låt oss titta på vårt commit-träd igen:

Som förväntat är commit-historiken nu linjär med den senaste commiten på feature/payment-grenen. Nu kan vi utföra en enkel fast-forward-sammanslagning till main-grenen:

Låt oss verifiera att båda grenarna pekar på samma commit genom att titta på den senaste commiten:

Ta bort funktionsgrenen

main-grenen innehåller nu den senaste committen med betalsystemet implementerat, så vi kan säkert ta bort både den lokala och den fjärranslutna feature/payment-grenen. Följande kommando tar bort fjärrgrenen:

Nu kan vi ta bort den lokala grenen:

Slutligen kan alla ändringar vi gjort skickas tillbaka till fjärrförvaret:

För att verifiera att feature-grenen har tagits bort både lokalt och på fjärrservern kan du köra följande kommando, som listar alla (-a står för alla) lokala och fjärrgrenar:

Som du kan se har feature/payment-grenen blivit borttagen, och det finns nu endast två grenar: main och john/test med deras fjärrmotsvarigheter.

Överlag fungerar rebase bra för lokala ändringar som ännu inte har delats, men det kan orsaka betydande problem för ändringar som redan har publicerats till ett fjärrrepository och eventuellt laddats ner av andra samarbetspartners. Att rebase:a commits som andra använder kan skapa förvirring och konflikter på grund av omskrivning av commit-historiken.

Som en allmän regel, undvik att rebase:a ändringar som har pushats till fjärrrepositoryn för att förhindra dessa problem.

question mark

Efter att ha rebase:at feature/paymentmain, varför utför git merge feature/payment en fast-forward-merge?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 5
some-alt