Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Løsning af Fletningskonflikter | Arbejde med Grener i Git
Git Essentials

Løsning af Fletningskonflikter

Stryg for at vise menuen

Løsning af konflikter

I det forrige kapitel opstod der en sammenfletningskonflikt, så nu er det tid til at løse den. Først åbnes filen branch_learning.txt i Vim-editoren ved hjælp af følgende kommando:

vim branch_learning.txt
Åbning af Vim

Hvis Vim ikke er installeret, kan du bruge en anden teksteditor såsom nano eller atom ved at erstatte vim med navnet på din editor i kommandoen ovenfor.
Det anbefales dog at bruge Vim for nemmere at kunne følge trinnene her.

Her er filen åbnet i Vim-editoren:

Fil med konflikter åbnet i Vim

Nu kan du se konfliktmarkørerne, der angiver de konfliktende sektioner.
Disse markører bruger pile og specielle symboler til at fremhæve forskelle mellem brancher:

  • <<<<<<< HEAD: markerer starten på ændringer fra den aktuelle branch (master);
  • =======: adskiller ændringerne fra den aktuelle branch (HEAD) og dem fra den branch, der flettes;
  • >>>>>>> feature/new-feature: markerer slutningen på ændringerne fra den branch, der flettes.

For at løse konflikten, vælg en af følgende muligheder:

  • Behold ændringerne fra den aktuelle branch (master);
  • Behold ændringerne fra den flettede branch (feature/new-feature);
  • Rediger manuelt indholdet.

Rediger filen manuelt ved at kombinere ændringerne fra begge brancher ved hjælp af følgende trin:

1. Gå i redigeringstilstand

Start med at gå i insert-tilstand i Vim ved at trykke på i. Dette gør det muligt at redigere teksten.

2. Rediger det konfliktfyldte afsnit

Dernæst kombineres linjerne fra begge grene i rækkefølge. Det resulterende indhold af filen skal se således ud:

New branch
New line from the master branch
New line from the feature branch
Løsning af konflikten

3. Afslut redigeringstilstand, gem og afslut

Tryk på Escape-tasten for at afslutte indsætningstilstand. Skriv derefter :wq og tryk på Enter for at gemme ændringerne og afslutte Vim:

Afslutning af Vim

Commit af filen

Da konflikterne er løst, tilføjes filen branch_learning.txt til staging-området, og status kontrolleres:

git add branch_learning.txt
git status
Tilføjelse af løst fil

Filen blev ændret og tilføjet til staging-området. Fortsæt nu med at committe den:

git commit
Commit af filen

Endnu en gang åbnes standardteksteditoren (Vim i mit tilfælde) med standard-commit-beskeden vedrørende sammenfletningen:

Standard commit-besked

Gå ind i insert mode i Vim ved at trykke på i, og rediger derefter beskeden ved at tilføje linjen Kept lines from both branches for at beskrive, hvordan konflikterne blev løst.

Her er den komplette commit-besked:

Merge branch 'feature/new-feature'

Kept lines from both branches

For at afslutte indsætningstilstand, gemme ændringerne og lukke Vim, tryk på Escape-tasten, skriv derefter :wq og tryk på Enter.

Gemmer den ændrede besked og afslutter Vim

Committen er gennemført, og sammenfletningskonflikten er nu løst.

Trevejssammenfletning

Lad os nu se på vores commit-historik som en graf (--graph flag) med én linje pr. commit (--oneline flag):

git log --graph --oneline
Commit-historikgraf

Her kan du se den seneste fletnings-commit sammen med den karakteristiske struktur for et trevejsfletning.

question mark

Hvad er den anbefalede måde at løse en fletningskonflikt i Git på?

Vælg det korrekte svar

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 4. Kapitel 6

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Sektion 4. Kapitel 6
some-alt