Conflicten in GitHub zijn in feite die vervelende momenten waarop meerdere wijzigingen botsen en Git niet weet welke te vertrouwen is. Als ze onopgelost blijven, zal het mergen van je branches gewoon niet gebeuren – en dat is vervelend, vooral als je een deadline hebt. Deze korte handleiding legt uit hoe je conflicten correct oplost, of je nu de voorkeur geeft aan de terminal, de webinterface of je favoriete IDE. Begrijpen hoe je conflicten aanpakt, kan je veel hoofdpijn besparen – en je code sneller mergen, zelfs als het rommelig wordt.
Conflicten oplossen in GitHub
Methode 1: De terminal gebruiken (opdrachtregel)
Dit is de meest grondige manier: je hebt volledige controle over wat er wordt samengevoegd. Perfect als conflicten ingewikkeld zijn of als je zorgvuldig wilt kiezen wat blijft. Waarom dit handig is? Omdat je daadwerkelijk ziet, bewerkt en beslist wat wat is. Wanneer er conflicten ontstaan, wordt je code gemarkeerd tijdens een samenvoeging, en dan komt deze methode goed van pas. Verwacht een schone, conflictvrije branch die klaar is om te pushen.
- Voer eerst de run uit
git fetch origin
— dit werkt je lokale kopie bij met wat er op GitHub staat, zonder je huidige wijzigingen te verstoren. Soms ontstaan er conflicten omdat je lokale branch achterloopt. - Schakel over naar je functie of werkende branch:
git checkout branch-name
. Vervangbranch-name
door de naam van je echte branch. Als je het niet zeker weet, typ dangit branch
om te zien wat er actief is. - Voeg vervolgens de laatste wijzigingen van de doelbranch samen – meestal
main
ofdevelop
– metgit merge main
(of welke branch dan ook).Dit kan conflicten veroorzaken als die er zijn. - Als Git conflicten signaleert, open dan de bestanden met het conflict. Je ziet markeringen zoals <<<<<<<, ======= en >>>>>>>.Niet leuk, maar het is de enige manier om ze op te lossen.
- Bepaal welke code je wilt behouden: behoud de huidige wijzigingen, inkomende wijzigingen, of combineer ze. Verwijder de conflictmarkeringen na het bewerken. Het is een beetje vreemd, maar je moet hier echt voorzichtig mee zijn.
- Sla je bestand op en bereid het voor met
git add filename
. Herhaal dit voor alle bestanden met een conflict. - Zodra alle conflicten zijn opgelost en in scène zijn gezet, commit je met
git commit
. Git kan het bericht automatisch invullen, maar controleer nogmaals of het klopt. - Push ten slotte je branch terug naar GitHub met
git push origin branch-name
. Klaar.
Deze methode is erg handig, omdat je precies ziet waar de conflicten zich bevinden en zelf kunt bepalen hoe je ze oplost. In sommige configuraties kunnen conflicten in het begin hardnekkig zijn en moet je git fetch
de terminal mogelijk opnieuw opstarten.
Methode 2: Conflicten oplossen via GitHub Web of IDE
Als de commandline niet jouw ding is of de conflicten klein zijn, is dit een snelle en gemakkelijke manier. Open je pull request op GitHub, klik op ‘Conflicten oplossen ‘ en er is een ingebouwde editor om problemen op te lossen. Als je VS Code of een andere IDE gebruikt, worden conflicten direct in je editor gemarkeerd, met knoppen om inkomende of huidige wijzigingen te accepteren. Normaal gesproken is dit de beste manier voor eenvoudige, kleine conflicten, maar pas op: soms mis je misschien dieperliggende problemen of context die alleen de terminal onthult.
- Ga naar uw pull request-pagina op GitHub.
- Klik op de knop Conflicten oplossen. Deze knop verschijnt meestal wanneer GitHub conflicten detecteert tijdens de PR-beoordeling.
- Gebruik de editor die verschijnt om te selecteren welke wijzigingen u wilt behouden, of bewerk ze indien nodig handmatig. Sla uw wijzigingen op.
- Zodra alle conflicten zijn opgelost, kunt u de samenvoeging rechtstreeks in GitHub vastleggen.
- Als u in VS Code werkt, opent u het bestand met het conflict. Dit bestand is gemarkeerd met <<<<<<<, ======= en >>>>>>>.U kunt opties zoals ‘ Huidige wijziging accepteren’ of ‘Inkomende wijziging accepteren’ kiezen uit de opties boven de conflicten. Sla deze bestanden op en zet ze klaar.
Dit is handig wanneer conflicten eenvoudig zijn of wanneer snelle oplossingen nodig zijn zonder van tool te wisselen. Nog een optie om te proberen als je bang bent om de CLI te verpesten.
Tips om toekomstige conflicten te vermijden
- Trek regelmatig uit de hoofdbranch of je hoofdbranch om je lokale branch up-to-date te houden. Waarom? Omdat hoe langer je branch ongecontroleerd blijft, hoe groter de kans op conflicten bij het mergen.
- Praat met teamgenoten als je aan dezelfde bestanden werkt. Het is beter om samen te werken dan elkaar te verrassen.
- Houd feature branches kort. Hoe langer ze blijven staan, hoe meer ze uiteenlopen, wat leidt tot grotere conflicten bij het terugmergen.
- Gebruik pull-requests en codebeoordelingen om overlappend werk vroegtijdig te signaleren. Zo voorkomt u dat conflicten later tot grotere problemen leiden.
Waarom ontstaan conflicten?
- Wanneer twee branches dezelfde regel code of sectie wijzigen, raakt Git in de war over welke wijziging behouden moet blijven.
- Bestanden worden in de ene branch verwijderd, maar in een andere bewerkt. Dit leidt tot overlappingsconflicten.
- Vertakkingen gaan in de loop van de tijd uiteenlopen door verschillende bewerkingen. Samenvoegen kan daarom conflicten veroorzaken.
Kortom: u moet deze conflicten handmatig beoordelen en de juiste code selecteren. Dit kan soms vervelend zijn, maar is onvermijdelijk.
Veelgestelde vragen
Je ziet een merge conflict-fout in je terminal of wanneer GitHub deze markeert tijdens het pull-requestproces. Normaal gesproken geeft Git vrij duidelijke meldingen over conflicten.
Absoluut. VS Code toont conflicten direct in de editor gemarkeerd, met opties om huidige, binnenkomende of beide te accepteren. Let wel op: het is makkelijk om per ongeluk op “Alles accepteren” te klikken wanneer je dat eigenlijk niet wilt.
Daarmee wordt het conflict in je huidige branch niet opgelost. Je moet conflicten oplossen voordat je branches verwijdert, anders blijven ze bestaan wanneer je ze samenvoegt.
Voor simpele overlappingen, ja — Git kan automatisch samenvoegen. Maar als er conflicten zijn in dezelfde regel of hetzelfde bestand, zul je handmatig moeten kiezen. Geen magie hier.
Afronding
Uitzoeken hoe je conflicten in GitHub oplost is niet bepaald leuk, maar de stappen kennen maakt een enorm verschil. De terminal geeft je controle, de webinterface en IDE-opties werken voor snelle oplossingen, en door je branches kort te houden, voorkom je meer conflicten in de toekomst. Soms voelt het als een gedoe, maar als je het eenmaal onder de knie hebt, hoort het er gewoon bij. Hopelijk helpt dit je in de goede richting – of bespaart het je in ieder geval een paar hoofdpijnuren.
Samenvatting
- Haal uw hoofdbranch regelmatig op om up-to-date te blijven.
- Los conflicten op met opdrachten of hulpmiddelen waar u vertrouwd mee bent.
- Communiceer met teamgenoten om overlappingen te voorkomen.
- Bekijk conflicten zorgvuldig voordat u samenvoegt.