Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Het Oplossen van Merge-Conflicten | Werken Met Branches in Git
Git Essentials

bookHet Oplossen van Merge-Conflicten

Conflicten oplossen

In het vorige hoofdstuk kwamen we een mergeconflict tegen, dus nu is het tijd om dit op te lossen. Open eerst het bestand branch_learning.txt met de Vim-editor via het volgende commando:

Als Vim niet is geïnstalleerd, kan een andere teksteditor zoals nano of atom worden gebruikt (vervang vim door de naam van de gewenste editor in het bovenstaande commando). Het wordt echter sterk aanbevolen om Vim te gebruiken, omdat het hierdoor eenvoudiger is om de instructies te volgen.

Hier is het bestand geopend in de Vim-editor:

Nu zijn markeringen zichtbaar die de conflicterende secties aanduiden. Deze markeringen bestaan uit pijlen en speciale symbolen om de conflicterende wijzigingen uit verschillende branches te markeren. De conflictmarkeringen zijn als volgt:

  • <<<<<<< HEAD: Geeft het begin aan van de wijzigingen uit de huidige branch (master in dit geval);
  • =======: Scheidt de wijzigingen van de huidige branch (HEAD) en de wijzigingen van de branch die wordt samengevoegd;
  • >>>>>>> feature/new-feature: Geeft het einde aan van de wijzigingen uit de branch die wordt samengevoegd.

Om de conflicten op te lossen, kan gekozen worden voor de wijziging uit de huidige branch (master), de wijziging uit de branch die wordt samengevoegd (feature/new-feature), of de wijzigingen handmatig aanpassen.

Wijzigingen handmatig combineren door de volgende stappen te volgen:

1. Editmodus activeren

Eerst moet de insert (bewerk) modus in Vim worden geactiveerd door op i te drukken. Hiermee kun je de tekst bewerken.

2. Bewerk het conflicterende gedeelte

Vervolgens worden de regels van beide branches achter elkaar samengevoegd, zodat de uiteindelijke inhoud van het bestand als volgt zal zijn:

3. Verlaat de bewerkmodus, sla op en sluit af:

Om de insert-modus te verlaten, druk op de Escape-toets. Daarna, om de wijzigingen op te slaan en af te sluiten, typ :wq en druk op de Enter-toets:

Het bestand committen

Nu we de conflicten hebben opgelost, voegen we branch_learning.txt toe aan de staging area en controleren we de status:

Het bestand is gewijzigd en daadwerkelijk toegevoegd aan de staging area. We kunnen nu doorgaan met het committen ervan:

Opnieuw wordt de standaard teksteditor geopend (Vim in dit geval) met het standaard commitbericht over de merge:

Ga naar de insert-modus in Vim door op i te drukken en wijzig dit bericht door de volgende regel toe te voegen: Kept lines from both branches om aan te geven hoe de conflicten zijn opgelost. Hier is het volledige commit-bericht:

Om de insert-modus te verlaten, de wijzigingen op te slaan en Vim af te sluiten, druk op de Escape-toets, typ vervolgens :wq en druk op de Enter-toets.

De commit is succesvol en het mergeconflict is nu opgelost.

Laten we nu onze commitgeschiedenis bekijken als een grafiek (--graph vlag) met één regel per commit (--oneline vlag):

Hier zien we onze laatste merge-commit en de karakteristieke vorm van een three-way merge.

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 4. Hoofdstuk 6

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Suggested prompts:

Can you explain what a three-way merge is?

What should I do if I encounter another merge conflict?

How can I view more details about a specific commit in the log?

Awesome!

Completion rate improved to 3.57

bookHet Oplossen van Merge-Conflicten

Veeg om het menu te tonen

Conflicten oplossen

In het vorige hoofdstuk kwamen we een mergeconflict tegen, dus nu is het tijd om dit op te lossen. Open eerst het bestand branch_learning.txt met de Vim-editor via het volgende commando:

Als Vim niet is geïnstalleerd, kan een andere teksteditor zoals nano of atom worden gebruikt (vervang vim door de naam van de gewenste editor in het bovenstaande commando). Het wordt echter sterk aanbevolen om Vim te gebruiken, omdat het hierdoor eenvoudiger is om de instructies te volgen.

Hier is het bestand geopend in de Vim-editor:

Nu zijn markeringen zichtbaar die de conflicterende secties aanduiden. Deze markeringen bestaan uit pijlen en speciale symbolen om de conflicterende wijzigingen uit verschillende branches te markeren. De conflictmarkeringen zijn als volgt:

  • <<<<<<< HEAD: Geeft het begin aan van de wijzigingen uit de huidige branch (master in dit geval);
  • =======: Scheidt de wijzigingen van de huidige branch (HEAD) en de wijzigingen van de branch die wordt samengevoegd;
  • >>>>>>> feature/new-feature: Geeft het einde aan van de wijzigingen uit de branch die wordt samengevoegd.

Om de conflicten op te lossen, kan gekozen worden voor de wijziging uit de huidige branch (master), de wijziging uit de branch die wordt samengevoegd (feature/new-feature), of de wijzigingen handmatig aanpassen.

Wijzigingen handmatig combineren door de volgende stappen te volgen:

1. Editmodus activeren

Eerst moet de insert (bewerk) modus in Vim worden geactiveerd door op i te drukken. Hiermee kun je de tekst bewerken.

2. Bewerk het conflicterende gedeelte

Vervolgens worden de regels van beide branches achter elkaar samengevoegd, zodat de uiteindelijke inhoud van het bestand als volgt zal zijn:

3. Verlaat de bewerkmodus, sla op en sluit af:

Om de insert-modus te verlaten, druk op de Escape-toets. Daarna, om de wijzigingen op te slaan en af te sluiten, typ :wq en druk op de Enter-toets:

Het bestand committen

Nu we de conflicten hebben opgelost, voegen we branch_learning.txt toe aan de staging area en controleren we de status:

Het bestand is gewijzigd en daadwerkelijk toegevoegd aan de staging area. We kunnen nu doorgaan met het committen ervan:

Opnieuw wordt de standaard teksteditor geopend (Vim in dit geval) met het standaard commitbericht over de merge:

Ga naar de insert-modus in Vim door op i te drukken en wijzig dit bericht door de volgende regel toe te voegen: Kept lines from both branches om aan te geven hoe de conflicten zijn opgelost. Hier is het volledige commit-bericht:

Om de insert-modus te verlaten, de wijzigingen op te slaan en Vim af te sluiten, druk op de Escape-toets, typ vervolgens :wq en druk op de Enter-toets.

De commit is succesvol en het mergeconflict is nu opgelost.

Laten we nu onze commitgeschiedenis bekijken als een grafiek (--graph vlag) met één regel per commit (--oneline vlag):

Hier zien we onze laatste merge-commit en de karakteristieke vorm van een three-way merge.

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 4. Hoofdstuk 6
some-alt