Het 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.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
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
Het 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.
Bedankt voor je feedback!