Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Sammanfoga Grenar | Arbeta med Grenar i Git
Git-Grunder

bookSammanfoga Grenar

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å samman funktionsgrenar med huvudgrenen (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.

De två senaste commitarna på funktionsgrenen

Som du kan se är grenen master ett commit bakom. Innan sammanslagning måste du byta till den gren där ändringarna ska integreras. Byt till grenen master och visa de två senaste commitarna på den:

Byter till master och visar de två senaste commitarna

Grenen master är faktiskt ett commit bakom feature-grenen. För att slå ihop dem, använd kommandot git merge och ange vilken gren som ska slås ihop med den aktuella grenen. Till exempel, för att slå ihop grenen feature/new-feature med master, kör:

Sammanfoga
Note
Notering

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 undersöka de två typerna av sammanfogningar senare i detta kapitel. Innan dess, visa de två senaste commitarna:

De två senaste commitarna efter sammanslagning

Du är fortfarande på master-grenen, men den är nu uppdaterad med feature-grenen, där båda grenarna pekar på samma commit.

Note
Notera

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 anges i meddelandet. Denna typ uppstår när alla commits från den aktuella utcheckade grenen också finns i den gren som sammanfogas, vilket innebär att deras commit-historik inte har förgrenats.

Se följande illustration för förtydligande:

Vid denna typ av sammanfogning uppdateras pekaren för den utcheckade grenen helt enkelt till den senaste committen.

Trevägssammanfogning

Om grenarnas historik däremot har förgrenats, vilket innebär att nya commits har gjorts separat på varje gren efter en gemensam commit, utförs en trevägssammanfogning.

Termen "trevägs" syftar på de tre versioner som ingår i sammanfogningen:

  • 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 den gren som sammanfogas.

Titta på följande illustration av denna typ av sammanfogning:

Så här fungerar en trevägs-sammanslagning:

  1. Git identifierar ändringarna som gjorts på varje gren efter den senaste gemensamma föregångaren;
  2. 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 commiten;
  3. Annars uppstår en sammanslagningskonflikt.
question mark

Välj alla typer av sammanslagning.

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. 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

Suggested prompts:

What is the difference between a fast-forward merge and a three-way merge?

Can you explain what a merge conflict is and how to resolve it?

Can you give an example of when a three-way merge would occur?

Awesome!

Completion rate improved to 3.57

bookSammanfoga 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å samman funktionsgrenar med huvudgrenen (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.

De två senaste commitarna på funktionsgrenen

Som du kan se är grenen master ett commit bakom. Innan sammanslagning måste du byta till den gren där ändringarna ska integreras. Byt till grenen master och visa de två senaste commitarna på den:

Byter till master och visar de två senaste commitarna

Grenen master är faktiskt ett commit bakom feature-grenen. För att slå ihop dem, använd kommandot git merge och ange vilken gren som ska slås ihop med den aktuella grenen. Till exempel, för att slå ihop grenen feature/new-feature med master, kör:

Sammanfoga
Note
Notering

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 undersöka de två typerna av sammanfogningar senare i detta kapitel. Innan dess, visa de två senaste commitarna:

De två senaste commitarna efter sammanslagning

Du är fortfarande på master-grenen, men den är nu uppdaterad med feature-grenen, där båda grenarna pekar på samma commit.

Note
Notera

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 anges i meddelandet. Denna typ uppstår när alla commits från den aktuella utcheckade grenen också finns i den gren som sammanfogas, vilket innebär att deras commit-historik inte har förgrenats.

Se följande illustration för förtydligande:

Vid denna typ av sammanfogning uppdateras pekaren för den utcheckade grenen helt enkelt till den senaste committen.

Trevägssammanfogning

Om grenarnas historik däremot har förgrenats, vilket innebär att nya commits har gjorts separat på varje gren efter en gemensam commit, utförs en trevägssammanfogning.

Termen "trevägs" syftar på de tre versioner som ingår i sammanfogningen:

  • 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 den gren som sammanfogas.

Titta på följande illustration av denna typ av sammanfogning:

Så här fungerar en trevägs-sammanslagning:

  1. Git identifierar ändringarna som gjorts på varje gren efter den senaste gemensamma föregångaren;
  2. 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 commiten;
  3. Annars uppstår en sammanslagningskonflikt.
question mark

Välj alla typer av sammanslagning.

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 4
some-alt