Het is bij elke project belangrijk om versie beheer te hebben. Vaak word hiervoor Git gebruikt. Git is een tool waarmee je verschillende versies van je code kan opslaan. Bij kleine projecten commit je vaak gelijk naar de master brance, maar voor grote projecten is dit erg onhandig. Vaak krijg je conflicts. Wat is een goede git workflow voor een groot project?

1. Branches

Voor grotere projecten heeft het een groot voordeel om in brances te werken. Voor elke nieuwe feature maak je een nieuwe brance aan waardoor je op deze brance aan je nieuwe features kan werken. Als er nu iets tussen komt kan je weer vanaf de master een brance maken met de fix voor een issue. Ook is de kans op een conflict kleiner doordat meestal alleen jij op die feature brance werkt.

Om een nieuwe branche aan te maken moet je dit uitvoeren in de command line:

cd /to/project/folder/

Zorg dat je op de masterbrance zit, dan kan je nu een brance aanmaken.

git checkout -b feature/new-navbar

De brance is nu aangamaakt je kan nu commits doen naar deze brance. Een commit doe je door:

git commit -a -m 'added a new navbar'

2. Pull request

Wanneer je feature af is maak je een pull request naar de master branche. De projet owner kan deze pull request dan goed keuren. Een andere manier van werken is om bij je eerste commit op de nieuwe brance gelijk een pull request te maken. Hierdoor weet de owner van het project gelijk dat jij er mee bezig bent.
Een pull request maakt je door eerst naar de master te gaan.
git checkout master
Daarna kan je je nieuwe brance mergen met de master. Dit doe je door onderstaande command:

git merge feature/new-navbar

3. Pull request verhaal

De pull request schijrft het 'verhaal' van de feature. In het overzicht op github Alle aanpassingen komen er in en in de discussie bij de pull request kunnen de redeen voor de keuzes neergezet worden.
Wanneer je een issue in een brance fixt kan je in de commit description een #[issuenumber] zetten. Hij komt nu bij de open issue te staan en ook bij jou pull request.

4. Deploying

Wanneer er naar de pull request gekeken word kan de brance getest worden. Wanneer alle tests voldaan zijn kan hij gemerged worden naar de master en dan kan de feature op de production worden gedraait. Hierna kan je de brance verwijderen door onderstaande command uit te voeren:

git branch -d feature/new-navbar

5. Server updaten

De code draait vaak op een web server. Om de Git repository te clonen op je server moet je onderstaande command uit voeren.

git clone https://github.com/mat1th/meesterproef.git

Dit houd in dat de van de git repository
https://github.com/mat1th/meesterproef.git een clone maakt op je server.
Wanneer je nu veranderingen uitgevoerd hebt kan je onderstaande command uitvoeren om je server weer met de laatste versie bij te werken.

git pull

Hiermee weet je hopelijk de basis workflow van Git. De laatste stap kan je ook automatiseren doormiddel van een git webhook. Dit houd in dat je server automatisch wat uitvoert als er een pull gedaan is naar de server. Meer informatie kan je op github vinden.

Bronnen