Wat is een merge conflict?

Meestal voegt Git jullie werk vanzelf samen. Maar als jij en je teamgenoot precies dezelfde regel hebben aangepast, weet Git niet welke versie goed is. Dan krijg je een conflict, en moet jij kiezen.

Geen paniek! Een conflict betekent niet dat je iets fout hebt gedaan, en er gaat niks kapot. Git vraagt je alleen om een keuze te maken.

Los het zelf op

Jij hebt de titel veranderd in "Team Rocket". Je teamgenoot heeft dezelfde titel veranderd in "onze website". Git zet nu allebei in je bestand. Welke kies jij?

Merge conflict in index.html

Zo los je het op

In je bestand ziet een conflict er zo uit:

<<<<<<< HEAD
  <h1>Welkom bij Team Rocket</h1>     ← jouw versie
=======
  <h1>Welkom op onze website</h1>    ← versie van je teamgenoot
>>>>>>> main

Met GitHub Desktop + VS Code

  1. Desktop laat zien welke bestanden een conflict hebben
  2. Klik op Open in Visual Studio Code
  3. Boven het conflict staan knoppen. Klik op Accept Current Change (jouw versie), Accept Incoming Change (die van je teamgenoot) of Accept Both Changes
  4. Sla het bestand op
  5. Ga terug naar Desktop en klik op Continue merge
  6. Klik op Push origin

Met de terminal

# Los het conflict op in VS Code en sla op. Daarna:
git add .
git commit -m "fix: merge conflict opgelost"
git push

Let op: check of alle <<<<<<<, ======= en >>>>>>> weg zijn voordat je commit. Anders staan die rare tekens straks op je website!

Voorkomen

  • Pull vaak — begin elke keer met git pull
  • Verdeel het werk — werk niet met z'n tweeën in hetzelfde bestand
  • Kleine branches — maak je user story af en merge snel
  • Overleg — "ik ga aan de navbar werken" in de groepsapp scheelt veel gedoe