Git definieert een versiebeheerproces voor hoe projecten moeten worden gedeeld. Er zijn veel websites waarmee je je Git-projecten kunt hosten. GitHub is de meest populaire optie, Bitbucket is een ander populair alternatief, beide staan gratis accounts toe die onbeperkte openbare of privé-repositories kunnen creëren. GitLab biedt een door uzelf gehost alternatief dat privéontwikkeling mogelijk maakt zonder afhankelijk te zijn van hosting van derden.
Het proces om eerst een Git-repository te downloaden, wordt klonen genoemd. Klonen omvat alle informatie over de repository op dat moment, maar om de repository in de loop van de tijd up-to-date te houden, moet u nieuwe versies downloaden. Om dit te doen, opent u eenvoudig een terminalvenster in de map met de lokale versie van de repository en typt u het commando "git pull".
De bediening van dit commando is bijzonder eenvoudig als je gewoon een bijgewerkte versie van de repository wilt downloaden; de lokale versie wordt bijgewerkt zodat deze overeenkomt met de versie op afstand. U kunt echter zien dat er problemen kunnen optreden als u wijzigingen heeft aangebracht in uw lokale versie.
Het commando "git pull" voert eigenlijk twee afzonderlijke commando's uit: "git fetch" en "git merge FETCH HEAD". Het subcommando "git fetch" haalt specifiek de nieuwste versie uit de online repository en slaat deze tijdelijk op. Het subcommando "git merge FETCH HEAD" voegt vervolgens je lokale wijzigingen samen met de gedownloade versie, waarbij nieuwere commits de voorkeur hebben.
Tip: Een “git commit” is een indiening van een wijziging, het is mogelijk om meerdere lokale en remote commits te hebben die dezelfde of verschillende dingen doen. Lokale commits zijn niet zichtbaar voor de externe versie totdat de wijzigingen zijn doorgevoerd. Elke commit geeft precies aan welke wijzigingen zijn aangebracht en bevat een tijdstempel.
Conflicten tussen lokale en externe versies
Idealiter zijn er in een samenvoegscenario geen conflicten en wordt het samenvoegproces automatisch voltooid. Samenvoegen kan bijzonder gemakkelijk zijn als er weinig wijzigingen zijn aangebracht, of als uw lokale wijzigingen geen invloed hebben op eventuele wijzigingen op afstand. Als er echter tegenstrijdige complexe wijzigingen zijn in hetzelfde deel van de code, zal Git een samenvoegfout veroorzaken.
Op dit punt kun je het samenvoegen afbreken met het commando "git merge -abort" of proberen de conflicten handmatig op te lossen. De commando's "git mergetool" en "git diff" bieden een grafisch voorbeeld van de verschillen die zouden moeten helpen om het zo gemakkelijk mogelijk te maken om te zien welke wijzigingen handmatig moeten worden toegepast om het samenvoegen te voltooien. Als je alle conflicten hebt opgelost, typ je het commando "git merge –continue" om het samenvoegen te voltooien.
Het commando "git mergetool" opent een grafische tool zoals deze om je te helpen handmatig conflicten op te lossen.