Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Synkronisera Arkiven | Mer Avancerade Arbetsflöden
Github-Grunder
course content

Kursinnehåll

Github-Grunder

Github-Grunder

1. Introduktion till GitHub
2. Grundläggande Interaktion med Fjärrservrar
3. Mer Avancerade Arbetsflöden

book
Synkronisera Arkiven

Som nämnts i föregående kapitel behöver vi synkronisera vår lokala gren med det fjärranslutna arkivet. För att göra detta ska vi köra kommandot git pull:

När vi körde kommandot git pull hämtade Git uppdateringar men märkte att våra lokala och fjärranslutna grenar har avvikit, vilket innebär att det finns ändringar på båda grenarna som måste samordnas. Git kunde inte fortsätta eftersom det behöver veta hur dessa skillnader ska hanteras, så vi ställer in alternativet merge och kör kommandot git pull igen:

Note
Notera

Vi kommer att gå igenom rebase-operationen senare i denna kurs.

Git försökte automatiskt slå samman de lokala och fjärrändringarna i README.md, men stötte på en sammanslagningskonflikt. Låt oss titta på commit-trädet, som visar var förgreningen och konflikterna har uppstått:

Lösning av konflikten

Som du kan se delar vår nuvarande lokala commit och commiten i den fjärranslutna main-grenen en gemensam föregångare, men de förgrenar sig, vilket leder till den sammanslagningskonflikt som vi behöver lösa. För att göra detta öppnar vi filen README.md i Vim-editorn:

För att lösa denna konflikt kan vi gå in i insert-läge genom att trycka på i, ta bort konfliktmarkörerna och kombinera dessa ändringar på följande sätt:

Nästa steg är att trycka på Escape-tangenten, skriva :wq och trycka på Enter-tangenten för att spara ändringarna och avsluta Vim. För att slutföra sammanslagningen måste nu filen README.md läggas till i staging-området och därefter committas med respektive kommandon:

Note
Notera

Efter att ha kört kommandot git commit öppnas den förvalda textredigeraren (troligtvis Vim). Du kan antingen behålla det förvalda commit-meddelandet och avsluta Vim på samma sätt som vi just gjorde, eller redigera meddelandet och sedan avsluta.

Slutligen kan vi säkert köra kommandot git push och verifiera att three-way merge lyckades genom att visa commit-trädet:

Låt oss gå igenom vad vi gjorde i dessa två kapitel:

  1. Vi simulerade samarbete genom att göra ändringar både lokalt och på distans i filen README.md;

  2. Vi gjorde först en commit direkt till det fjärrlagrade (remote) arkivet, och därefter en annan ändring lokalt;

  3. När vi försökte pusha våra lokala ändringar stötte vi på en konflikt eftersom det fjärrlagrade arkivet hade nya uppdateringar;

  4. För att lösa detta hämtade vi ändringarna från det fjärrlagrade arkivet, vilket resulterade i en sammanslagningskonflikt;

  5. Vi löste sedan manuellt konflikten i filen README.md med hjälp av Vim-editorn, committade de lösta ändringarna och lyckades pusha de slutgiltiga uppdateringarna till det fjärrlagrade arkivet.

question mark

Vilket kommando ställer in Git att använda merge (inte rebase) vid git pull?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 2

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

course content

Kursinnehåll

Github-Grunder

Github-Grunder

1. Introduktion till GitHub
2. Grundläggande Interaktion med Fjärrservrar
3. Mer Avancerade Arbetsflöden

book
Synkronisera Arkiven

Som nämnts i föregående kapitel behöver vi synkronisera vår lokala gren med det fjärranslutna arkivet. För att göra detta ska vi köra kommandot git pull:

När vi körde kommandot git pull hämtade Git uppdateringar men märkte att våra lokala och fjärranslutna grenar har avvikit, vilket innebär att det finns ändringar på båda grenarna som måste samordnas. Git kunde inte fortsätta eftersom det behöver veta hur dessa skillnader ska hanteras, så vi ställer in alternativet merge och kör kommandot git pull igen:

Note
Notera

Vi kommer att gå igenom rebase-operationen senare i denna kurs.

Git försökte automatiskt slå samman de lokala och fjärrändringarna i README.md, men stötte på en sammanslagningskonflikt. Låt oss titta på commit-trädet, som visar var förgreningen och konflikterna har uppstått:

Lösning av konflikten

Som du kan se delar vår nuvarande lokala commit och commiten i den fjärranslutna main-grenen en gemensam föregångare, men de förgrenar sig, vilket leder till den sammanslagningskonflikt som vi behöver lösa. För att göra detta öppnar vi filen README.md i Vim-editorn:

För att lösa denna konflikt kan vi gå in i insert-läge genom att trycka på i, ta bort konfliktmarkörerna och kombinera dessa ändringar på följande sätt:

Nästa steg är att trycka på Escape-tangenten, skriva :wq och trycka på Enter-tangenten för att spara ändringarna och avsluta Vim. För att slutföra sammanslagningen måste nu filen README.md läggas till i staging-området och därefter committas med respektive kommandon:

Note
Notera

Efter att ha kört kommandot git commit öppnas den förvalda textredigeraren (troligtvis Vim). Du kan antingen behålla det förvalda commit-meddelandet och avsluta Vim på samma sätt som vi just gjorde, eller redigera meddelandet och sedan avsluta.

Slutligen kan vi säkert köra kommandot git push och verifiera att three-way merge lyckades genom att visa commit-trädet:

Låt oss gå igenom vad vi gjorde i dessa två kapitel:

  1. Vi simulerade samarbete genom att göra ändringar både lokalt och på distans i filen README.md;

  2. Vi gjorde först en commit direkt till det fjärrlagrade (remote) arkivet, och därefter en annan ändring lokalt;

  3. När vi försökte pusha våra lokala ändringar stötte vi på en konflikt eftersom det fjärrlagrade arkivet hade nya uppdateringar;

  4. För att lösa detta hämtade vi ändringarna från det fjärrlagrade arkivet, vilket resulterade i en sammanslagningskonflikt;

  5. Vi löste sedan manuellt konflikten i filen README.md med hjälp av Vim-editorn, committade de lösta ändringarna och lyckades pusha de slutgiltiga uppdateringarna till det fjärrlagrade arkivet.

question mark

Vilket kommando ställer in Git att använda merge (inte rebase) vid git pull?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 2
some-alt