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
- Desktop laat zien welke bestanden een conflict hebben
- Klik op Open in Visual Studio Code
- Boven het conflict staan knoppen. Klik op Accept Current Change (jouw versie), Accept Incoming Change (die van je teamgenoot) of Accept Both Changes
- Sla het bestand op
- Ga terug naar Desktop en klik op Continue merge
- 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