Sammanfoga Grenar
Svep för att visa menyn
Förståelse av sammanslagning av grenar
I Git är sammanfogning processen att integrera ändringar från en gren till en annan. Det vanligaste användningsområdet är att slå ihop feature-grenar med main-grenen (t.ex. main eller master). Detta säkerställer att de senaste funktionerna och buggfixarna införlivas i huvudkodbasen.
Grundläggande arbetsflöde för sammanslagning
Visa först de två senaste commitarna.
Observera att du för närvarande befinner dig på grenen feature/new-feature.
git log -n 2
Som du kan se är grenen master ett commit bakom.
Innan du slår ihop, måste du byta till den gren där ändringarna ska integreras.
Byt till grenen master och visa de två senaste commiten på den:
git checkout master
git log -n 2
Branchen master ligger faktiskt ett commit bakom feature-branchen.
För att slå samman dem, använd kommandot git merge och ange vilken branch som ska slås samman med den aktuella branchen.
Till exempel, för att slå samman branchen feature/new-feature med master, kör:
git merge feature/new-feature
Meddelandet som visas efter att kommandot har körts innehåller följande: Fast-forward, vilket anger att en fast-forward-sammanfogning har utförts.
Du kommer att utforska de två typerna av sammanslagningar senare i detta kapitel. Innan dess, visa de två senaste commitarna:
git log -n 2
Du är fortfarande på master-grenen, men den är nu uppdaterad med feature-grenen, där båda grenarna pekar på samma commit.
HEAD pekar fortfarande på master-grenen eftersom du befann dig på denna gren när sammanslagningen genomfördes.
Sammanfogningsmetoder
Det finns två typer av sammanfogningsoperationer i Git:
- Fast-forward-sammanfogning;
- Trevägssammanfogning.
Fast-forward-sammanfogning
Den sammanfogning du utförde är en fast-forward-sammanfogning, vilket framgår av meddelandet. Denna typ uppstår när alla commits från den aktuella utcheckade grenen också finns i den gren som slås samman, vilket innebär att deras commit-historik inte har förgrenats.
Se följande illustration för förtydligande:
Med denna typ av sammanslagning uppdateras pekaren för den utcheckade grenen helt enkelt till den senaste committen.
Trevägssammanslagning
Om grenarnas historik däremot har avvikit, vilket innebär att nya commit har gjorts separat på varje gren efter en viss gemensam commit, utförs en trevägssammanslagning.
Termen "trevägs" syftar på de tre versioner som är involverade i sammanslagningen:
- Versionen av den senaste gemensamma föregångaren (commit);
- Versionen av den senaste committen i den aktuella grenen (HEAD);
- Versionen av den senaste committen i grenen som slås samman.
Titta på följande illustration av denna typ av sammanslagning:
Så här fungerar en trevägs-sammanslagning:
- Git identifierar ändringarna som gjorts på varje gren efter den senaste gemensamma föregångaren;
- Om varje gren har ändringar i olika filer eller olika delar av samma fil, kommer Git att automatiskt slå samman ändringarna genom att kombinera dem i den resulterande committen;
- Annars uppstår en sammanslagningskonflikt.
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal