Het Oplossen van Merge-Conflicten
Veeg om het menu te tonen
Conflicten oplossen
In het vorige hoofdstuk is er een merge-conflict opgetreden, dus nu is het tijd om dit op te lossen.
Open eerst het bestand branch_learning.txt in de Vim-editor met het volgende commando:
vim branch_learning.txt
Als Vim niet is geïnstalleerd, kun je een andere teksteditor gebruiken, zoals nano of atom, door vim te vervangen door de naam van jouw editor in het bovenstaande commando.
Het wordt echter aanbevolen om Vim te gebruiken voor een betere aansluiting bij de hier getoonde stappen.
Hier is het bestand geopend in de Vim-editor:
Nu zijn de conflictmarkeringen zichtbaar die de conflicterende secties aangeven.
Deze markeringen gebruiken pijlen en speciale symbolen om de verschillen tussen branches te benadrukken:
<<<<<<< HEAD: markeert het begin van de wijzigingen uit de huidige branch (master);=======: scheidt de wijzigingen van de huidige branch (HEAD) en die van de branch die wordt samengevoegd;>>>>>>> feature/new-feature: markeert het einde van de wijzigingen uit de samengevoegde branch.
Om het conflict op te lossen, kies een van de volgende opties:
- Behoud de wijzigingen van de huidige branch (
master); - Behoud de wijzigingen van de samengevoegde branch (
feature/new-feature); - Handmatig bewerken van de inhoud.
Bewerk het bestand handmatig door de wijzigingen van beide branches te combineren met de volgende stappen:
1. Bewerkmodus activeren
Activeer eerst de insert-modus in Vim door op i te drukken.
Hiermee kun je de tekst bewerken.
2. Bewerk het conflicterende gedeelte
Vervolgens de regels van beide branches achter elkaar combineren. De uiteindelijke inhoud van het bestand ziet er als volgt uit:
New branch
New line from the master branch
New line from the feature branch
3. Verlaat de bewerkmodus, sla op en sluit af
Druk op de Escape-toets om de invoegmodus te verlaten.
Typ vervolgens :wq en druk op Enter om de wijzigingen op te slaan en Vim af te sluiten:
Bestand committen
Nu de conflicten zijn opgelost, het bestand branch_learning.txt toevoegen aan de staging area en de status controleren:
git add branch_learning.txt
git status
Het bestand is gewijzigd en succesvol toegevoegd aan de staging area. Ga nu verder met het committen:
git commit
Opnieuw wordt de standaardteksteditor geopend (Vim in mijn geval) met het standaard commitbericht over de merge:
Ga in insert mode in Vim door op i te drukken en wijzig het bericht door de regel toe te voegen
Kept lines from both branches
om te beschrijven hoe de conflicten zijn opgelost.
Hier is het volledige commitbericht:
Merge branch 'feature/new-feature'
Kept lines from both branches
Om de invoegmodus te verlaten, de wijzigingen op te slaan en Vim af te sluiten, druk op de Escape-toets, typ vervolgens :wq en druk op Enter.
De commit is geslaagd en het mergeconflict is nu opgelost.
Laten we nu onze commitgeschiedenis als een grafiek bekijken (--graph vlag) met één regel per commit (--oneline vlag):
git log --graph --oneline
Hier zie je de meest recente merge-commit samen met de kenmerkende structuur 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.