Werken in het gedeelde Cypress project deel 2
Nadat de git repository correct is opgezet op de lokale pc kan er gewerkt worden aan nieuwe automatische tests. Dit moet echter wel correct gedaan worden zodat alles goed blijft werken. Op deze pagina staat het voorbereidend werk beschreven voordat er nieuwe code kan worden geschreven. Hierbij gebruiken we de termen local branch en remote branch. De local branch is de branch waar je je aanpassingen naartoe commit. Dit kan niet worden aangepast door anderen en kan dus ook niet bekeken worden door anderen. De remote branch is de publieke versie van dezelfde branch en kan wel worden aangepast door anderen.
- Eerst willen we op de juiste branch zitten. Hiervoor gaan we naar de git terminal in webstorm en gebruiken we git checkout origins/features/cypress. Als we al op deze branch zaten, dan is deze stap niet nodig.
- Nu moeten we er zeker van zijn dat webstorm de huidige status van de remote cypress branch weet. Hiervoor gaan we naar de git terminal in webstorm en gebruiken we git fetch. Zo weet webstorm zeker dat het de meest recente versie van de cypress branche heeft.
- Nu is het belangrijk dat de huidige local branch gelijk is aan de remote branch. Dit kan worden gecontroleerd met de command git status. Wanneer de tekst nothing to commit, working tree clean verschijnt is er niets aan de hand en kan men doorgaan naar stap 5. Is dat niet zo, ga dan naar stap 4.
- Het kan zijn dat de huidige local branch achterloopt op de remote branch. In dit geval moet de command git pull worden uitgevoerd. Hiermee wordt de lokale branch geupdate naar de meest recente versie van de remote branch. Het kan echter ook voorkomen dat de huidige branch juist voorloopt wegens aanpassingen of commits. Het liefst willen we de main cypress branch schoon houden. Het is dus niet de bedoeling dat deze commits worden gepushed. om de aanpassingen ongedaan te maken kan git reset of git reset –hard worden gebruikt. Wil je de aanpassingen liever behouden, dan kan je git stash gebruiken. Dit kan later weer worden opgehaald met git stash apply
- Nu dat alles up to date is, willen we er zeker van zijn dat de remote cypress branch niet te ver achterloopt op de develop branch. Als deze stap al recent (dezelfde dag) is uitgevoerd kan het worden overgeslagen. Anders moeten we een merge uitvoeren. Dit kan in webstorm via de taakbalk door te navigeren naar git -> Merge. Er verschijnt nu een pop-up waarin de branch kan worden gekozen waarmee gemerged moet worden. Kies hiervoor de branch origin/develop en klik vervolgens op merge. Als alles goed gaat wordt je locale branch correct geupdate. Het kan voorkomen dat er een merge conflict ontstaat. Deze moet eerst worden opgelost voordat de merge kan worden voltooid. Wees hierbij voorzichtig en vraag vooral om hulp om er zeker van te zijn dat er niks wordt stuk gemaakt.
- Na de merge moet de remote branch nog worden geupdate. Als er merge conflicts waren opgelost, dan moet dit worden gecommit. Gebruik eerst in de git terminal git add . om de aanpassingen te stagen. Vervolgens gebruik je git commit -m waarbij de commit message beschrijft waar de commit over gaat. In dit geval zou je het volgende kunnen gebruiken: “solved merge conflicts between cypress and develop”. 
- Hierna kan alles veilig worden gepushed naar de remote branch van cypress door het gebruik van git push.
- Nu is echt alles up to date en kan je een eigen nieuwe branch aanmaken voor jouw eigen werk. Hiervoor gebruiken we git checkout -b . Er wordt nu een nieuwe local branch gemaakt die gelijk is aan de local versie van de cypress branch. Hier kan rustig worden gewerkt met alle eigen aanpassingen zonder problemen. 
- Om vervolgens ook een remote versie van de nieuwe branch op te zetten gebruiken we git push –set-upstream origin . Als alles goet gaat geeft de terminal nu aan dat de local branch de remote branch aan het tracken is.