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

bookHantera Sammanslagningskonflikter

Åtgärda konflikter

I föregående kapitel uppstod en sammanslagningskonflikt, så nu är det dags att lösa den. Öppna först filen branch_learning.txt i Vim-editorn med följande kommando:

Öppnar Vim

Om Vim inte är installerat kan du använda en annan texteditor, till exempel nano eller atom, genom att ersätta vim med din editors namn i kommandot ovan.
Det rekommenderas dock att använda Vim för att enklare följa stegen som visas här.

Här är filen öppnad i Vim-editorn:

Fil med konflikter öppnad i Vim

Nu visas konfliktmarkörer som indikerar de konfliktande avsnitten.
Dessa markörer använder pilar och specialsymboler för att markera skillnader mellan brancher:

  • <<<<<<< HEAD; markerar början på ändringarna från nuvarande branch (master);
  • =======; separerar ändringarna från nuvarande branch (HEAD) och de från den branch som slås ihop;
  • >>>>>>> feature/new-feature; markerar slutet på ändringarna från den branch som slås ihop.

För att lösa konflikten, välj ett av följande alternativ:

  • Behåll ändringarna från nuvarande branch (master);
  • Behåll ändringarna från ihopslagen branch (feature/new-feature);
  • Redigera manuellt innehållet.

Redigera filen manuellt genom att kombinera ändringarna från båda brancherna med följande steg:

1. Gå in i redigeringsläge

Gå först in i insert-läge i Vim genom att trycka på i. Detta gör det möjligt att redigera texten.

2. Redigera den konfliktfyllda sektionen

Kombinera därefter raderna från båda grenarna i sekventiell ordning. Den resulterande filens innehåll ska se ut enligt följande:

Lösa konflikten

3. Avsluta redigeringsläge, spara och avsluta

Tryck på Escape-tangenten för att lämna infogningsläget. Skriv sedan :wq och tryck på Enter för att spara ändringarna och avsluta Vim:

Avsluta Vim

Committa filen

Eftersom konflikterna är lösta, lägg till filen branch_learning.txt i staging area och kontrollera statusen:

Lägga till löst fil

Filen har ändrats och har framgångsrikt lagts till i staging-området. Fortsätt nu med att committa den:

Commit av filen

Återigen öppnas standardtextredigeraren (Vim i mitt fall) med det förvalda commit-meddelandet angående sammanslagningen:

Standardmeddelande för commit

Gå in i insert mode i Vim genom att trycka på i, och ändra sedan meddelandet genom att lägga till raden Kept lines from both branches för att beskriva hur konflikterna löstes.

Här är det fullständiga commit-meddelandet:

För att lämna insert mode, spara ändringarna och stänga Vim, tryck på Escape-tangenten, skriv sedan :wq och tryck på Enter.

Sparar det ändrade meddelandet och avslutar Vim

Commiten lyckades och sammanslagningskonflikten är nu löst.

Nu granskas vår commithistorik som en graf (--graph flagga) med en rad per commit (--oneline flagga):

Commit-historikdiagram

Här kan du se den senaste sammanslagningskommittén tillsammans med den karakteristiska strukturen för en trevägssammanslagning.

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 6

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:

Can you explain what a three-way merge is?

How do I interpret the output of `git log --graph --oneline`?

What should I do if I see unexpected results in the commit graph?

Awesome!

Completion rate improved to 3.57

bookHantera Sammanslagningskonflikter

Svep för att visa menyn

Åtgärda konflikter

I föregående kapitel uppstod en sammanslagningskonflikt, så nu är det dags att lösa den. Öppna först filen branch_learning.txt i Vim-editorn med följande kommando:

Öppnar Vim

Om Vim inte är installerat kan du använda en annan texteditor, till exempel nano eller atom, genom att ersätta vim med din editors namn i kommandot ovan.
Det rekommenderas dock att använda Vim för att enklare följa stegen som visas här.

Här är filen öppnad i Vim-editorn:

Fil med konflikter öppnad i Vim

Nu visas konfliktmarkörer som indikerar de konfliktande avsnitten.
Dessa markörer använder pilar och specialsymboler för att markera skillnader mellan brancher:

  • <<<<<<< HEAD; markerar början på ändringarna från nuvarande branch (master);
  • =======; separerar ändringarna från nuvarande branch (HEAD) och de från den branch som slås ihop;
  • >>>>>>> feature/new-feature; markerar slutet på ändringarna från den branch som slås ihop.

För att lösa konflikten, välj ett av följande alternativ:

  • Behåll ändringarna från nuvarande branch (master);
  • Behåll ändringarna från ihopslagen branch (feature/new-feature);
  • Redigera manuellt innehållet.

Redigera filen manuellt genom att kombinera ändringarna från båda brancherna med följande steg:

1. Gå in i redigeringsläge

Gå först in i insert-läge i Vim genom att trycka på i. Detta gör det möjligt att redigera texten.

2. Redigera den konfliktfyllda sektionen

Kombinera därefter raderna från båda grenarna i sekventiell ordning. Den resulterande filens innehåll ska se ut enligt följande:

Lösa konflikten

3. Avsluta redigeringsläge, spara och avsluta

Tryck på Escape-tangenten för att lämna infogningsläget. Skriv sedan :wq och tryck på Enter för att spara ändringarna och avsluta Vim:

Avsluta Vim

Committa filen

Eftersom konflikterna är lösta, lägg till filen branch_learning.txt i staging area och kontrollera statusen:

Lägga till löst fil

Filen har ändrats och har framgångsrikt lagts till i staging-området. Fortsätt nu med att committa den:

Commit av filen

Återigen öppnas standardtextredigeraren (Vim i mitt fall) med det förvalda commit-meddelandet angående sammanslagningen:

Standardmeddelande för commit

Gå in i insert mode i Vim genom att trycka på i, och ändra sedan meddelandet genom att lägga till raden Kept lines from both branches för att beskriva hur konflikterna löstes.

Här är det fullständiga commit-meddelandet:

För att lämna insert mode, spara ändringarna och stänga Vim, tryck på Escape-tangenten, skriv sedan :wq och tryck på Enter.

Sparar det ändrade meddelandet och avslutar Vim

Commiten lyckades och sammanslagningskonflikten är nu löst.

Nu granskas vår commithistorik som en graf (--graph flagga) med en rad per commit (--oneline flagga):

Commit-historikdiagram

Här kan du se den senaste sammanslagningskommittén tillsammans med den karakteristiska strukturen för en trevägssammanslagning.

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 6
some-alt