Feature branches: Nya funktioner som implementeras bör med fördel skapas genom en feature branch. Detta är en Git-branch där det par som arbetar på en viss funktion kan arbeta obehindrat, pusha upp sina ändringar utan onödiga merge-konflikter, samt att resultatet i slutändan kan mergas in i er main-branch när funktionen är klar. Notera: Er huvud-branch kanske inte heter 'main'. Om ni skapar ert projekt via kommandoraden kan det hända att er huvud-branch heter 'master'. Om så är fallet, ändra från 'main' till 'master' i samtliga instruktioner neda. En ny feature branch skapas med följande kommandon: Ställ er i main-branchen så att ni hämtar hem det senaste. git checkout main && git fetch origin && git reset --hard origin/main Skapa en ny branch för er nya feature där ni byter ut mot vad ni faktiskt implementerar. git checkout -b Ni kan nu göra commits till er nya branch precis som vanligt. När ni sedan vill pusha upp arbetet till er nya branch, använd följande kommando (där är namnet på er branch): git push -u origin När arbetet på er feature branch är klart och pushat till er feature branch ska det mergas in till main. Detta är när ni anser er feature helt klar, och ni vill lägga till denna nya implementation i er kodbas Detta kan göras via GitLab (om ni föredrar en GUI för att göra det), och då får ni en grafisk interface för att lösa merge-konflikter genom. Alternativt kan det göras via kommandoraden (där är namnet på er branch), men då kommer merge-konflikter behöva lösas i er text-editor: git checkout main git fetch git pull git merge -m "Ett valfritt commit-meddelande" Här kan det uppstå merge-konflikter. Om ni får meddelanden i terminalen om att det finns merge-konflikter att lösa behöver ni öppna upp de filer som terminalen säger att det finns konflikter i. Det kan då se ut så här på en eller flera ställen i koden: <<<<<<< HEAD // Här är koden som finns i er ursprungliga branch ======= // Här är nytt innehåll från er feature branch >>>>>>> your-feature Ni behöver nu ta bort den kod som inte är relevant, eller manuellt lösa så att dessa samspelar på ett vettigt sätt. Vill vi då ta emot den nya ändringen från er feature branch så tar man bort de rader som hör till merge-konflikten. <<<<<<< HEAD <- TA BORT // Här är koden som finns i er ursprungliga branch <- TA BORT ======= <- TA BORT // Här är nytt innehåll från er feature branch >>>>>>> your-feature <- TA BORT Kvar är då endast de ändringar som kom från er nya feature branch.