Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer De Repositories Synchroniseren | Meer Geavanceerde Workflows
GitHub Fundamentals

De Repositories Synchroniseren

Veeg om het menu te tonen

Zoals vermeld in het vorige hoofdstuk, moeten we onze lokale branch synchroniseren met de remote repository. Hiervoor voeren we het commando git pull uit:

git pull
Pull poging

Toen we het commando git pull uitvoerden, haalde Git updates op maar merkte dat onze lokale en remote branches uit elkaar zijn gelopen, wat betekent dat er wijzigingen zijn op beide branches die moeten worden samengevoegd. Git kon niet doorgaan omdat het moet weten hoe deze verschillen moeten worden afgehandeld, dus laten we de optie merge instellen en het commando git pull opnieuw uitvoeren:

git config pull.rebase false
Note
Opmerking

We behandelen de rebase-operatie later in deze cursus.

git pull
Mergeconflict

Git heeft geprobeerd de lokale en externe wijzigingen in README.md automatisch samen te voegen, maar er is een mergeconflict opgetreden. Laten we kijken naar de commit-boom, die aangeeft waar de divergentie en conflicten zijn ontstaan:

git log --graph --oneline --all
Commit-boom

Conflict oplossen

Zoals je kunt zien, delen onze huidige lokale commit en de commit in de remote main branch een gemeenschappelijke voorouder, maar ze lopen uiteen, wat leidt tot het mergeconflict dat we moeten oplossen. Hiervoor openen we het bestand README.md in de Vim-editor:

vim README.md
Conflicten in Vim

Om dit conflict op te lossen, schakelen we over naar insert-modus door op i te drukken, verwijderen we de conflictmarkeringen en combineren we deze wijzigingen op de volgende manier:

Opgelost conflict

Vervolgens druk je op de Escape-toets, typ je :wq en druk je op de Enter-toets om de wijzigingen op te slaan en Vim af te sluiten. Om de merge te voltooien, moet het bestand README.md nu toegevoegd worden aan de staging area en vervolgens gecommit worden met de bijbehorende commando's:

git add README.md
git commit
Note
Opmerking

Na het uitvoeren van het commando git commit wordt de standaard teksteditor geopend (meestal Vim). Je kunt het standaard commitbericht laten staan en Vim op dezelfde manier afsluiten als zojuist, of je kunt het bericht aanpassen en daarna afsluiten.

Samengevoegd bestand committen

Ten slotte kunnen we veilig het commando git push uitvoeren en verifiëren dat de drieweg-merge succesvol was door de commit-boom weer te geven:

git log --graph --oneline --all
Commit-boom

Laten we samenvatten wat we in deze twee hoofdstukken hebben gedaan:

  1. We hebben samenwerking gesimuleerd door zowel lokaal als op afstand wijzigingen aan te brengen in het bestand README.md;

  2. We hebben eerst een wijziging direct in de remote repository doorgevoerd en daarna een andere wijziging lokaal gemaakt;

  3. Toen we probeerden onze lokale wijzigingen te pushen, kwamen we een conflict tegen omdat de remote repository nieuwe updates had;

  4. Om dit op te lossen, hebben we de wijzigingen van de remote repository opgehaald, wat resulteerde in een mergeconflict;

  5. Vervolgens hebben we het conflict handmatig opgelost in het bestand README.md met behulp van de Vim-editor, de opgeloste wijzigingen gecommit en de definitieve updates succesvol gepusht naar de remote repository.

question mark

Welke opdracht stelt Git in om merge (en niet rebase) te gebruiken tijdens git pull?

Selecteer het correcte antwoord

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 3. Hoofdstuk 2

Vraag AI

expand

Vraag AI

ChatGPT

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

Sectie 3. Hoofdstuk 2
some-alt