Løsning av Flettekonflikter
Løse konflikter
I forrige kapittel støtte vi på en flettingskonflikt, så nå er det på tide å løse den. Først åpner vi filen branch_learning.txt
med Vim-editoren ved å bruke følgende kommando:
Hvis du ikke har Vim installert, kan du bruke andre tekstredigerere, som nano eller atom (erstatt vim
med navnet på din tekstredigerer i kommandoen over). Vi anbefaler likevel sterkt å bruke Vim, siden det vil gjøre det enklere å følge veiledningen.
Her er filen vår åpnet i Vim-editoren:
Nå kan vi se markører som indikerer de konfliktfylte seksjonene. Disse markørene vises som piler og spesielle symboler for å fremheve motstridende endringer fra ulike grener. Konfliktmarkørene er følgende:
<<<<<<< HEAD
: Indikerer starten på endringene fra nåværende gren (master
i dette tilfellet);=======
: Skiller endringene fra nåværende gren (HEAD) og endringene fra grenen som flettes inn;>>>>>>> feature/new-feature
: Marker slutten på endringene fra grenen som flettes inn.
For å løse konfliktene kan vi enten velge endringen fra nåværende gren (master
), velge endringen fra grenen som flettes inn (feature/new-feature
), eller redigere endringene manuelt.
Vi skal manuelt redigere endringene ved å kombinere endringene fra begge grenene ved å følge disse stegene:
1. Gå inn i redigeringsmodus
Først må vi gå inn i insert (redigerings-)modus i Vim ved å trykke i
. Dette gjør det mulig å redigere teksten.
2. Rediger den konfliktfylte delen
Deretter skal vi kombinere linjene fra begge grenene etter hverandre, slik at det endelige innholdet i filen blir som følger:
3. Avslutt redigeringsmodus, lagre og avslutt:
For å avslutte insert-modus, skal vi trykke på Escape-tasten. Deretter, for å lagre endringene og avslutte, skriver vi :wq
og trykker på Enter-tasten:
Legge til filen i staging-området
Siden vi har løst konfliktene, legger vi nå til branch_learning.txt
i staging-området og sjekker statusen:
Filen ble endret og faktisk lagt til i staging-området. Vi kan nå fortsette med å gjøre en commit:
Igjen åpnes standard teksteditor (Vim i mitt tilfelle) med standard commit-melding angående sammenslåingen:
Gå inn i insert mode i Vim ved å trykke i
og endre denne meldingen ved å legge til følgende linje: Kept lines from both branches
for å angi hvordan vi løste konfliktene. Her er den fullstendige commit-meldingen:
For å avslutte insert mode, lagre endringene og avslutte Vim, trykk Escape-tasten og skriv deretter :wq
og trykk Enter-tasten.
Commiten er vellykket, og flettekonflikten er nå løst.
La oss nå se på vår commit-historikk som en graf (--graph
flagg) med én linje per commit (--oneline
flagg):
Her kan vi se vår siste merge-commit og den karakteristiske formen til en treveisfletting.
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Can you explain what a three-way merge is?
What should I do if I encounter another merge conflict?
How can I view more details about a specific commit in the log?
Awesome!
Completion rate improved to 3.57
Løsning av Flettekonflikter
Sveip for å vise menyen
Løse konflikter
I forrige kapittel støtte vi på en flettingskonflikt, så nå er det på tide å løse den. Først åpner vi filen branch_learning.txt
med Vim-editoren ved å bruke følgende kommando:
Hvis du ikke har Vim installert, kan du bruke andre tekstredigerere, som nano eller atom (erstatt vim
med navnet på din tekstredigerer i kommandoen over). Vi anbefaler likevel sterkt å bruke Vim, siden det vil gjøre det enklere å følge veiledningen.
Her er filen vår åpnet i Vim-editoren:
Nå kan vi se markører som indikerer de konfliktfylte seksjonene. Disse markørene vises som piler og spesielle symboler for å fremheve motstridende endringer fra ulike grener. Konfliktmarkørene er følgende:
<<<<<<< HEAD
: Indikerer starten på endringene fra nåværende gren (master
i dette tilfellet);=======
: Skiller endringene fra nåværende gren (HEAD) og endringene fra grenen som flettes inn;>>>>>>> feature/new-feature
: Marker slutten på endringene fra grenen som flettes inn.
For å løse konfliktene kan vi enten velge endringen fra nåværende gren (master
), velge endringen fra grenen som flettes inn (feature/new-feature
), eller redigere endringene manuelt.
Vi skal manuelt redigere endringene ved å kombinere endringene fra begge grenene ved å følge disse stegene:
1. Gå inn i redigeringsmodus
Først må vi gå inn i insert (redigerings-)modus i Vim ved å trykke i
. Dette gjør det mulig å redigere teksten.
2. Rediger den konfliktfylte delen
Deretter skal vi kombinere linjene fra begge grenene etter hverandre, slik at det endelige innholdet i filen blir som følger:
3. Avslutt redigeringsmodus, lagre og avslutt:
For å avslutte insert-modus, skal vi trykke på Escape-tasten. Deretter, for å lagre endringene og avslutte, skriver vi :wq
og trykker på Enter-tasten:
Legge til filen i staging-området
Siden vi har løst konfliktene, legger vi nå til branch_learning.txt
i staging-området og sjekker statusen:
Filen ble endret og faktisk lagt til i staging-området. Vi kan nå fortsette med å gjøre en commit:
Igjen åpnes standard teksteditor (Vim i mitt tilfelle) med standard commit-melding angående sammenslåingen:
Gå inn i insert mode i Vim ved å trykke i
og endre denne meldingen ved å legge til følgende linje: Kept lines from both branches
for å angi hvordan vi løste konfliktene. Her er den fullstendige commit-meldingen:
For å avslutte insert mode, lagre endringene og avslutte Vim, trykk Escape-tasten og skriv deretter :wq
og trykk Enter-tasten.
Commiten er vellykket, og flettekonflikten er nå løst.
La oss nå se på vår commit-historikk som en graf (--graph
flagg) med én linje per commit (--oneline
flagg):
Her kan vi se vår siste merge-commit og den karakteristiske formen til en treveisfletting.
Takk for tilbakemeldingene dine!