Hoppa till innehåll

Övning: två idéer samtidigt

  • Att använda allt från modulen i ett sammanhang: git switch, git merge, konflikter och git branch -d.
  • Att arbeta på två grenar som utgår från samma commit.
  • Att en konflikt kan lösas med en helt ny version, som tar med båda ändringarna.

I verkligheten pågår ofta flera saker samtidigt. I modul 1 såg du hur svårt det blir när två personer ändrar i var sin kopia av samma text. Nu provar du samma sak med grenarBranchEn egen utvecklingslinje i ett repository, där man kan göra ändringar utan att påverka huvudversionen.Läs mer om grenar. Den här gången är det du som spelar båda personerna.

Du gör två uppgifter, var och en på sin gren, som båda utgår från main:

Gren Uppgift
boende Skriv var ni ska sova första natten.
starta-i-nykoping Börja resan i Nyköping i stället för i Stockholm.

Båda grenarna ändrar raden om dag 1. När den andra grenen förs in blir det därför en konflikt, och du bestämmer hur raden ska se ut.

Så här ser konflikten ut när båda grenarna har ändrat dag 1:

resplan.txt
<<<<<<< HEAD
Dag 1: Stockholm (vandrarhem)
=======
Dag 1: Nyköping
>>>>>>> starta-i-nykoping

Ingen av versionerna är hela sanningen. Den ena har boendet och den andra den nya staden. Lösningen blir en tredje version, med båda: Dag 1: Nyköping (vandrarhem).

Problem i modul 1 Med grenar
Två personer kunde inte ändra samtidigt utan att skriva över varandra. Var och en arbetar på sin gren.
Ett halvfärdigt förslag kunde förstöra resplanen som fungerade. main är orörd tills grenen förs in.
Det var svårt att se vad den andra hade ändrat. git log --all --graph visar båda grenarna.
Ändringar på samma ställe blev fel utan att någon märkte det. Git stannar vid en konflikt och låter dig bestämma.
1. Du står på grenen boende och vill skapa en ny gren som utgår från main. Vad gör du först?
Visa rätt svar
  • git switch main: En ny gren skapas där du står. Växla till main först.
2. Den ena grenen har "Dag 1: Stockholm (vandrarhem)" och den andra "Dag 1: Nyköping". Vilka lösningar på konflikten är möjliga? (Välj alla som stämmer)
Visa rätt svar
  • Dag 1: Stockholm (vandrarhem)
  • Dag 1: Nyköping
  • Dag 1: Nyköping (vandrarhem): Du bestämmer själv. En ny version som tar med båda ändringarna är ofta bäst.

  • Två grenar kan utgå från samma commit och ändras helt oberoende av varandra.
  • Växla till main innan du skapar en ny gren, så att den utgår från huvudversionen.
  • En konflikt kan lösas med den ena versionen, den andra eller en ny version som tar med båda.
  • Kvar att lösa: att dela grenarna med andra. Det kommer i modul 5.