Løsning af Fletningskonflikter
Løsning af konflikter
I det forrige kapitel stødte vi på en sammenfletningskonflikt, så nu er det tid til at løse den. Først åbnes filen branch_learning.txt
med Vim-editoren ved hjælp af følgende kommando:
Hvis du ikke har Vim installeret, kan du bruge andre teksteditorer, såsom nano eller atom (erstat vim
med navnet på din teksteditor i kommandoen ovenfor). Det anbefales dog stærkt at bruge Vim, da det vil gøre det lettere at følge med.
Her er vores fil åbnet i Vim-editoren:
Nu kan vi se markører, der angiver de konfliktende sektioner. Disse markører er repræsenteret ved pile og specielle symboler for at fremhæve de konfliktende ændringer fra forskellige grene. Konfliktmarkørerne er følgende:
<<<<<<< HEAD
: Angiver begyndelsen på ændringerne fra den aktuelle gren (master
i dette tilfælde);=======
: Adskiller ændringerne fra den aktuelle gren (HEAD) og ændringerne fra den gren, der flettes ind;>>>>>>> feature/new-feature
: Marker slutningen på ændringerne fra den gren, der flettes ind.
For at løse konflikterne kan man enten vælge ændringen fra den aktuelle gren (master
), vælge ændringen fra den gren, der flettes ind (feature/new-feature
), eller redigere ændringerne manuelt.
Lad os manuelt redigere ændringerne ved at kombinere ændringerne fra begge grene ved at følge disse trin:
1. Gå ind i redigeringstilstand
Først skal vi gå ind i insert (redigerings)tilstand i Vim ved at trykke på i
. Dette gør det muligt at redigere teksten.
2. Rediger det konfliktende afsnit
Dernæst skal vi kombinere linjerne fra begge grene efter hinanden, så det endelige indhold af filen bliver som følger:
3. Afslut redigeringstilstand, gem og afslut:
For at afslutte insert-tilstand skal vi trykke på Escape-tasten. Herefter skal vi for at gemme ændringerne og afslutte skrive :wq
og trykke på Enter-tasten:
Commit af filen
Da vi har løst konflikterne, skal vi nu tilføje branch_learning.txt
til staging-området og tjekke status:
Filen blev ændret og er nu tilføjet til staging-området. Vi kan nu fortsætte med commit:
Endnu en gang åbnes standard teksteditoren (Vim i dette tilfælde) med standard commit-beskeden vedrørende sammenfletningen:
Gå ind i insert mode i Vim ved at trykke på i
og rediger denne besked ved at tilføje følgende linje: Kept lines from both branches
for at angive, hvordan vi løste konflikterne. Her er den fulde commit-besked:
For at afslutte insert mode, gemme ændringerne og afslutte Vim, skal du trykke på Escape-tasten og derefter skrive :wq
og trykke på Enter-tasten.
Committen er gennemført, og sammenfletningskonflikten er nu løst.
Lad os nu se på vores commit-historik som en graf (--graph
flag) med én linje pr. commit (--oneline
flag):
Her kan vi se vores seneste merge-commit og den karakteristiske form af et trevejs-merge.
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Awesome!
Completion rate improved to 3.57
Løsning af Fletningskonflikter
Stryg for at vise menuen
Løsning af konflikter
I det forrige kapitel stødte vi på en sammenfletningskonflikt, så nu er det tid til at løse den. Først åbnes filen branch_learning.txt
med Vim-editoren ved hjælp af følgende kommando:
Hvis du ikke har Vim installeret, kan du bruge andre teksteditorer, såsom nano eller atom (erstat vim
med navnet på din teksteditor i kommandoen ovenfor). Det anbefales dog stærkt at bruge Vim, da det vil gøre det lettere at følge med.
Her er vores fil åbnet i Vim-editoren:
Nu kan vi se markører, der angiver de konfliktende sektioner. Disse markører er repræsenteret ved pile og specielle symboler for at fremhæve de konfliktende ændringer fra forskellige grene. Konfliktmarkørerne er følgende:
<<<<<<< HEAD
: Angiver begyndelsen på ændringerne fra den aktuelle gren (master
i dette tilfælde);=======
: Adskiller ændringerne fra den aktuelle gren (HEAD) og ændringerne fra den gren, der flettes ind;>>>>>>> feature/new-feature
: Marker slutningen på ændringerne fra den gren, der flettes ind.
For at løse konflikterne kan man enten vælge ændringen fra den aktuelle gren (master
), vælge ændringen fra den gren, der flettes ind (feature/new-feature
), eller redigere ændringerne manuelt.
Lad os manuelt redigere ændringerne ved at kombinere ændringerne fra begge grene ved at følge disse trin:
1. Gå ind i redigeringstilstand
Først skal vi gå ind i insert (redigerings)tilstand i Vim ved at trykke på i
. Dette gør det muligt at redigere teksten.
2. Rediger det konfliktende afsnit
Dernæst skal vi kombinere linjerne fra begge grene efter hinanden, så det endelige indhold af filen bliver som følger:
3. Afslut redigeringstilstand, gem og afslut:
For at afslutte insert-tilstand skal vi trykke på Escape-tasten. Herefter skal vi for at gemme ændringerne og afslutte skrive :wq
og trykke på Enter-tasten:
Commit af filen
Da vi har løst konflikterne, skal vi nu tilføje branch_learning.txt
til staging-området og tjekke status:
Filen blev ændret og er nu tilføjet til staging-området. Vi kan nu fortsætte med commit:
Endnu en gang åbnes standard teksteditoren (Vim i dette tilfælde) med standard commit-beskeden vedrørende sammenfletningen:
Gå ind i insert mode i Vim ved at trykke på i
og rediger denne besked ved at tilføje følgende linje: Kept lines from both branches
for at angive, hvordan vi løste konflikterne. Her er den fulde commit-besked:
For at afslutte insert mode, gemme ændringerne og afslutte Vim, skal du trykke på Escape-tasten og derefter skrive :wq
og trykke på Enter-tasten.
Committen er gennemført, og sammenfletningskonflikten er nu løst.
Lad os nu se på vores commit-historik som en graf (--graph
flag) med én linje pr. commit (--oneline
flag):
Her kan vi se vores seneste merge-commit og den karakteristiske form af et trevejs-merge.
Tak for dine kommentarer!