Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Synkronisering av Depotene | Mer Avanserte Arbeidsflyter
GitHub-Grunnleggende
course content

Kursinnhold

GitHub-Grunnleggende

GitHub-Grunnleggende

1. Introduksjon til GitHub
2. Grunnleggende Samhandling med Eksterne Lagre
3. Mer Avanserte Arbeidsflyter

book
Synkronisering av Depotene

Som nevnt i forrige kapittel, må vi synkronisere vår lokale gren med det eksterne depotet. For å gjøre dette, bør vi kjøre kommandoen git pull:

Da vi kjørte kommandoen git pull, hentet Git oppdateringer, men oppdaget at våre lokale og eksterne grener har divergerte, noe som betyr at det finnes endringer på begge grener som må forenes. Git kunne ikke fortsette fordi den må vite hvordan disse forskjellene skal håndteres, så vi setter merge-alternativet og kjører git pull-kommandoen igjen:

Note
Merk

Vi vil gå gjennom rebase-operasjonen senere i dette kurset.

Git forsøkte å automatisk flette de lokale og eksterne endringene i README.md, men støtte på en flettekonflikt. La oss se på commit-treet, som viser hvor avviket og konfliktene har oppstått:

Løse konflikten

Som du ser, deler vår nåværende lokale commit og commiten i den eksterne main-grenen en felles stamfar, men de har forgreinet seg, noe som fører til flettekonflikten vi må løse. For å gjøre dette åpner vi README.md-filen i Vim-editoren:

For å løse denne konflikten kan vi gå inn i innsettingsmodus ved å trykke i, fjerne konfliktmarkørene og kombinere endringene på følgende måte:

Deretter bør du trykke på Escape-tasten, skrive :wq, og trykke på Enter-tasten for å lagre endringene og avslutte Vim. Nå må README.md-filen legges til i staging-området og deretter committes ved å bruke de respektive kommandoene:

Note
Merk

Etter å ha kjørt git commit-kommandoen, vil standard tekstredigerer åpnes (mest sannsynlig Vim). Du kan enten beholde standard commit-melding og avslutte Vim på samme måte som vi nettopp gjorde, eller du kan redigere meldingen og deretter avslutte.

Til slutt kan vi trygt kjøre git push-kommandoen og verifisere at three-way merge var vellykket ved å vise commit-treet:

La oss oppsummere hva vi gjorde i disse to kapitlene:

  1. Vi simulerte samarbeid ved å gjøre endringer både lokalt og eksternt i README.md-filen;

  2. Vi gjorde først en endring direkte i det eksterne depotet, deretter en annen endring lokalt;

  3. Da vi forsøkte å pushe våre lokale endringer, støtte vi på en konflikt fordi det eksterne depotet hadde nye oppdateringer;

  4. For å løse dette hentet vi endringene fra det eksterne depotet, noe som førte til en flettingskonflikt;

  5. Vi løste deretter konflikten manuelt i README.md-filen ved hjelp av Vim-editoren, committet de løste endringene, og pushet de endelige oppdateringene til det eksterne depotet.

question mark

Hvilken kommando setter Git til å bruke fletting (ikke rebase) under git pull?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 2

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

course content

Kursinnhold

GitHub-Grunnleggende

GitHub-Grunnleggende

1. Introduksjon til GitHub
2. Grunnleggende Samhandling med Eksterne Lagre
3. Mer Avanserte Arbeidsflyter

book
Synkronisering av Depotene

Som nevnt i forrige kapittel, må vi synkronisere vår lokale gren med det eksterne depotet. For å gjøre dette, bør vi kjøre kommandoen git pull:

Da vi kjørte kommandoen git pull, hentet Git oppdateringer, men oppdaget at våre lokale og eksterne grener har divergerte, noe som betyr at det finnes endringer på begge grener som må forenes. Git kunne ikke fortsette fordi den må vite hvordan disse forskjellene skal håndteres, så vi setter merge-alternativet og kjører git pull-kommandoen igjen:

Note
Merk

Vi vil gå gjennom rebase-operasjonen senere i dette kurset.

Git forsøkte å automatisk flette de lokale og eksterne endringene i README.md, men støtte på en flettekonflikt. La oss se på commit-treet, som viser hvor avviket og konfliktene har oppstått:

Løse konflikten

Som du ser, deler vår nåværende lokale commit og commiten i den eksterne main-grenen en felles stamfar, men de har forgreinet seg, noe som fører til flettekonflikten vi må løse. For å gjøre dette åpner vi README.md-filen i Vim-editoren:

For å løse denne konflikten kan vi gå inn i innsettingsmodus ved å trykke i, fjerne konfliktmarkørene og kombinere endringene på følgende måte:

Deretter bør du trykke på Escape-tasten, skrive :wq, og trykke på Enter-tasten for å lagre endringene og avslutte Vim. Nå må README.md-filen legges til i staging-området og deretter committes ved å bruke de respektive kommandoene:

Note
Merk

Etter å ha kjørt git commit-kommandoen, vil standard tekstredigerer åpnes (mest sannsynlig Vim). Du kan enten beholde standard commit-melding og avslutte Vim på samme måte som vi nettopp gjorde, eller du kan redigere meldingen og deretter avslutte.

Til slutt kan vi trygt kjøre git push-kommandoen og verifisere at three-way merge var vellykket ved å vise commit-treet:

La oss oppsummere hva vi gjorde i disse to kapitlene:

  1. Vi simulerte samarbeid ved å gjøre endringer både lokalt og eksternt i README.md-filen;

  2. Vi gjorde først en endring direkte i det eksterne depotet, deretter en annen endring lokalt;

  3. Da vi forsøkte å pushe våre lokale endringer, støtte vi på en konflikt fordi det eksterne depotet hadde nye oppdateringer;

  4. For å løse dette hentet vi endringene fra det eksterne depotet, noe som førte til en flettingskonflikt;

  5. Vi løste deretter konflikten manuelt i README.md-filen ved hjelp av Vim-editoren, committet de løste endringene, og pushet de endelige oppdateringene til det eksterne depotet.

question mark

Hvilken kommando setter Git til å bruke fletting (ikke rebase) under git pull?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 2
some-alt