Kursinnehåll
Github-Grunder
Github-Grunder
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 på 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.
Tack för dina kommentarer!