Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Synkronisering af Arkiverne | Mere Avancerede Workflows
Github-Grundlæggende
course content

Kursusindhold

Github-Grundlæggende

Github-Grundlæggende

1. Introduktion til GitHub
2. Grundlæggende Interaktion med Fjernlagre
3. Mere Avancerede Workflows

book
Synkronisering af Arkiverne

Som nævnt i det forrige kapitel, skal vi synkronisere vores lokale branch med det eksterne repository. For at gøre dette, skal vi køre kommandoen git pull:

Da vi kørte kommandoen git pull, hentede Git opdateringer, men bemærkede, at vores lokale og eksterne branches er divergeret, hvilket betyder, at der er ændringer på begge branches, som skal forenes. Git kunne ikke fortsætte, fordi det skal vide, hvordan disse forskelle skal håndteres, så lad os vælge merge-muligheden og køre kommandoen git pull igen:

Note
Bemærk

Vi gennemgår rebase-operationen senere i dette kursus.

Git forsøgte at flette de lokale og eksterne ændringer til README.md automatisk, men stødte på en flettekonflikt. Lad os se på commit-træet, som viser, hvor forgreningen og konflikterne er opstået:

Løsning af konflikten

Som du kan se, deler vores nuværende lokale commit og committet i den eksterne main-gren en fælles forfader, men de forgrener sig, hvilket fører til den flettekonflikt, vi skal løse. For at gøre dette åbner vi README.md-filen i Vim-editoren:

For at løse denne konflikt kan vi gå i insert mode ved at trykke på i, fjerne konfliktmarkørerne og kombinere ændringerne på følgende måde:

Dernæst skal du trykke på Escape-tasten, skrive :wq og trykke på Enter-tasten for at gemme ændringerne og afslutte Vim. For at fuldføre sammenfletningen skal README.md-filen nu tilføjes til staging-området og derefter committes ved hjælp af de respektive kommandoer:

Note
Bemærk

Efter at have kørt git commit-kommandoen åbnes standard teksteditoren (sandsynligvis Vim). Du kan enten beholde standard commit-beskeden og afslutte Vim på samme måde som før, eller du kan redigere beskeden og derefter afslutte.

Til sidst kan vi trygt køre git push-kommandoen og verificere, at three-way merge blev gennemført ved at vise commit-træet:

Lad os gennemgå, hvad vi gjorde i disse to kapitler:

  1. Vi simulerede samarbejde ved at foretage ændringer både lokalt og fjern i filen README.md;

  2. Vi lavede først en ændring direkte i fjernlageret, og derefter lavede vi en anden ændring lokalt;

  3. Da vi forsøgte at uploade vores lokale ændringer, stødte vi på en konflikt, fordi fjernlageret havde nye opdateringer;

  4. For at løse dette hentede vi ændringerne fra fjernlageret, hvilket resulterede i en sammenfletningskonflikt;

  5. Vi løste derefter manuelt konflikten i filen README.md ved hjælp af Vim-editoren, committede de løste ændringer og uploadede de endelige opdateringer til fjernlageret.

question mark

Hvilken kommando indstiller Git til at bruge merge (ikke rebase) under git pull?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 2

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

course content

Kursusindhold

Github-Grundlæggende

Github-Grundlæggende

1. Introduktion til GitHub
2. Grundlæggende Interaktion med Fjernlagre
3. Mere Avancerede Workflows

book
Synkronisering af Arkiverne

Som nævnt i det forrige kapitel, skal vi synkronisere vores lokale branch med det eksterne repository. For at gøre dette, skal vi køre kommandoen git pull:

Da vi kørte kommandoen git pull, hentede Git opdateringer, men bemærkede, at vores lokale og eksterne branches er divergeret, hvilket betyder, at der er ændringer på begge branches, som skal forenes. Git kunne ikke fortsætte, fordi det skal vide, hvordan disse forskelle skal håndteres, så lad os vælge merge-muligheden og køre kommandoen git pull igen:

Note
Bemærk

Vi gennemgår rebase-operationen senere i dette kursus.

Git forsøgte at flette de lokale og eksterne ændringer til README.md automatisk, men stødte på en flettekonflikt. Lad os se på commit-træet, som viser, hvor forgreningen og konflikterne er opstået:

Løsning af konflikten

Som du kan se, deler vores nuværende lokale commit og committet i den eksterne main-gren en fælles forfader, men de forgrener sig, hvilket fører til den flettekonflikt, vi skal løse. For at gøre dette åbner vi README.md-filen i Vim-editoren:

For at løse denne konflikt kan vi gå i insert mode ved at trykke på i, fjerne konfliktmarkørerne og kombinere ændringerne på følgende måde:

Dernæst skal du trykke på Escape-tasten, skrive :wq og trykke på Enter-tasten for at gemme ændringerne og afslutte Vim. For at fuldføre sammenfletningen skal README.md-filen nu tilføjes til staging-området og derefter committes ved hjælp af de respektive kommandoer:

Note
Bemærk

Efter at have kørt git commit-kommandoen åbnes standard teksteditoren (sandsynligvis Vim). Du kan enten beholde standard commit-beskeden og afslutte Vim på samme måde som før, eller du kan redigere beskeden og derefter afslutte.

Til sidst kan vi trygt køre git push-kommandoen og verificere, at three-way merge blev gennemført ved at vise commit-træet:

Lad os gennemgå, hvad vi gjorde i disse to kapitler:

  1. Vi simulerede samarbejde ved at foretage ændringer både lokalt og fjern i filen README.md;

  2. Vi lavede først en ændring direkte i fjernlageret, og derefter lavede vi en anden ændring lokalt;

  3. Da vi forsøgte at uploade vores lokale ændringer, stødte vi på en konflikt, fordi fjernlageret havde nye opdateringer;

  4. For at løse dette hentede vi ændringerne fra fjernlageret, hvilket resulterede i en sammenfletningskonflikt;

  5. Vi løste derefter manuelt konflikten i filen README.md ved hjælp af Vim-editoren, committede de løste ændringer og uploadede de endelige opdateringer til fjernlageret.

question mark

Hvilken kommando indstiller Git til at bruge merge (ikke rebase) under git pull?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 2
some-alt