Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Løsning av Flettekonflikter | Arbeide med Grener i Git
Git-essensielt

bookLøsning av Flettekonflikter

Løse konflikter

I forrige kapittel oppstod det en flettingskonflikt, så nå er det på tide å løse den. Først åpnes filen branch_learning.txt i Vim-editoren med følgende kommando:

Åpner Vim

Hvis Vim ikke er installert, kan du bruke en annen teksteditor som nano eller atom ved å erstatte vim med navnet på din editor i kommandoen over.
Det anbefales likevel å bruke Vim for enklere samsvar med trinnene som vises her.

Her er filen åpnet i Vim-editoren:

Fil med konflikter åpnet i Vim

Nå vises konfliktmarkører som indikerer de motstridende seksjonene.
Disse markørene bruker piler og spesielle symboler for å fremheve forskjeller mellom brancher:

  • <<<<<<< HEAD; markerer starten på endringene fra nåværende branch (master);
  • =======; skiller endringene fra nåværende branch (HEAD) og de fra branchen som flettes inn;
  • >>>>>>> feature/new-feature; markerer slutten på endringene fra branchen som flettes inn.

For å løse konflikten, velg ett av følgende alternativer:

  • Behold endringene fra nåværende branch (master);
  • Behold endringene fra flettet branch (feature/new-feature);
  • Rediger innholdet manuelt.

Rediger filen manuelt ved å kombinere endringene fra begge branchene ved å følge disse stegene:

1. Gå inn i redigeringsmodus

Gå først inn i insert-modus i Vim ved å trykke i. Dette gjør det mulig å redigere teksten.

2. Rediger den konfliktfylte seksjonen

Deretter kombineres linjene fra begge grenene sekvensielt. Det resulterende innholdet i filen skal se slik ut:

Løser konflikten

3. Avslutt redigeringsmodus, lagre og avslutt

Trykk på Escape-tasten for å avslutte innsettingsmodus. Skriv deretter :wq og trykk Enter for å lagre endringene og avslutte Vim:

Avslutter Vim

Committe filen

Siden konfliktene er løst, legg til filen branch_learning.txt i staging area og sjekk statusen:

Legger til løst fil

Filen ble endret og lagt til i staging-området. Fortsett nå med å committe den:

Committer filen

Igjen åpnes standard tekstredigerer (Vim i mitt tilfelle) med standard commit-melding angående sammenslåingen:

Standard commit-melding

Gå inn i insert mode i Vim ved å trykke i, og endre meldingen ved å legge til linjen Kept lines from both branches for å beskrive hvordan konfliktene ble løst.

Her er den fullstendige commit-meldingen:

For å avslutte insert mode, lagre endringene og lukke Vim, trykk Escape-tasten, skriv deretter :wq og trykk Enter.

Lagrer den endrede meldingen og avslutter Vim

Commiten er vellykket, og flettekonflikten er nå løst.

Se nå på commit-historikken som en graf (--graph-flagg) med én linje per commit (--oneline-flagg):

Commit history graph

Her kan du se den siste flette-committen sammen med den karakteristiske strukturen til en treveisfletting.

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 6

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

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

bookLøsning av Flettekonflikter

Sveip for å vise menyen

Løse konflikter

I forrige kapittel oppstod det en flettingskonflikt, så nå er det på tide å løse den. Først åpnes filen branch_learning.txt i Vim-editoren med følgende kommando:

Åpner Vim

Hvis Vim ikke er installert, kan du bruke en annen teksteditor som nano eller atom ved å erstatte vim med navnet på din editor i kommandoen over.
Det anbefales likevel å bruke Vim for enklere samsvar med trinnene som vises her.

Her er filen åpnet i Vim-editoren:

Fil med konflikter åpnet i Vim

Nå vises konfliktmarkører som indikerer de motstridende seksjonene.
Disse markørene bruker piler og spesielle symboler for å fremheve forskjeller mellom brancher:

  • <<<<<<< HEAD; markerer starten på endringene fra nåværende branch (master);
  • =======; skiller endringene fra nåværende branch (HEAD) og de fra branchen som flettes inn;
  • >>>>>>> feature/new-feature; markerer slutten på endringene fra branchen som flettes inn.

For å løse konflikten, velg ett av følgende alternativer:

  • Behold endringene fra nåværende branch (master);
  • Behold endringene fra flettet branch (feature/new-feature);
  • Rediger innholdet manuelt.

Rediger filen manuelt ved å kombinere endringene fra begge branchene ved å følge disse stegene:

1. Gå inn i redigeringsmodus

Gå først inn i insert-modus i Vim ved å trykke i. Dette gjør det mulig å redigere teksten.

2. Rediger den konfliktfylte seksjonen

Deretter kombineres linjene fra begge grenene sekvensielt. Det resulterende innholdet i filen skal se slik ut:

Løser konflikten

3. Avslutt redigeringsmodus, lagre og avslutt

Trykk på Escape-tasten for å avslutte innsettingsmodus. Skriv deretter :wq og trykk Enter for å lagre endringene og avslutte Vim:

Avslutter Vim

Committe filen

Siden konfliktene er løst, legg til filen branch_learning.txt i staging area og sjekk statusen:

Legger til løst fil

Filen ble endret og lagt til i staging-området. Fortsett nå med å committe den:

Committer filen

Igjen åpnes standard tekstredigerer (Vim i mitt tilfelle) med standard commit-melding angående sammenslåingen:

Standard commit-melding

Gå inn i insert mode i Vim ved å trykke i, og endre meldingen ved å legge til linjen Kept lines from both branches for å beskrive hvordan konfliktene ble løst.

Her er den fullstendige commit-meldingen:

For å avslutte insert mode, lagre endringene og lukke Vim, trykk Escape-tasten, skriv deretter :wq og trykk Enter.

Lagrer den endrede meldingen og avslutter Vim

Commiten er vellykket, og flettekonflikten er nå løst.

Se nå på commit-historikken som en graf (--graph-flagg) med én linje per commit (--oneline-flagg):

Commit history graph

Her kan du se den siste flette-committen sammen med den karakteristiske strukturen til en treveisfletting.

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 6
some-alt