GIT Workflow

Geplaatst door

Vandaag gaan we de workflow van GIT bespreken. Hoe gaan we om met updates, patches en nieuwe functionaliteit.

Dit is het vierde artikel in een serie van ontwikkelaars blogs. Hierin leggen we ontwikkelaars, amateur en professioneel, uit hoe agicshosting u kan helpen met uw project. Kijk voor alle artikelen in deze categorie op: https://agics.nl/blog/category/webhosting/ontwikkelaars-blogs/

Ten eerste. Dit is absoluut niet de enige manier. En ik pretendeer ook niet dat het de beste manier is. Dit blog is puur bedoeld om een praktische workflow te laten zien. Een die ik zelf ook gebruik, en soms ook van afwijk. Het is een goed begin. Gebruik het als zo, en pas het aan als dat beter voor je werkt.

Start van de workflow

We beginnen de workflow in de Develop Branch van Git. Ben je daar op dit moment niet? Voer dan het volgende commando uit.

git checkout devel

Website bewerken

Als je git gebruikt in een team, dan maak je waarschijnlijk een branch voor elke wijziging. ALs solo ontwerper is dit vaak niet nodig. Ik raad wel aan om lineair te werken. Probeer dus niet twee wijzigingen tegelijk te doen. Maak er een af, en begin dan aan de volgende.

Als je een wijziging gereed hebt sluit dan af met een commit. Hierdoor krijg je duidelijke stappen in je website. Dit doe je als volgt.

git add .
git commit -m "Inlog scherm gemaakt"

Het eerste commando voegt al je wijzigingen toe aan je git repository. De tweede bevestigd de wijzigingen en groepeert ze onder je omschrijving. In dit geval “Inlog scherm gemaakt”. Daarna kun je aan je volgende wijziging beginnen. Soms zijn wijzigingen heel klein. Bijvoorbeeld het corrigeren van een typo. Soms zijn ze heel groot, en wil je ze waarschijnlijk onderverdelen in apparte commits. Dat kan allemaal.

Ik houd zelf een changelog bij van de commits. Een bestand in je directory die CHANGELOG heet en waar ik elke commit als een regel wegschrijf met de datum. Op die manier kan ik eenvoudig terug zien wanneer ik wat heb gewijzigd.

Uploaden commits

Een commit upload de wijziging nog niet. Hiervoor is onderstaande commando nodig.

git push --set-upstream origin develop

Hiermee worden alle commits geupload. Ik doe dit zelf als ik klaar ben voor de dag. Op die manier heb ik altijd een online backup van mijn project. Je kunt er ook voor kiezen om dit na elke commit te doen. Een push is niet mogelijk als je wijzigingen hebt aangemaakt na een commit ! Het “–set upstream origin develop” is eenmalig nodig. Het koppelt je develop branch op je pc aan de develop branch op github. Daarna kun je volstaan met

git push

Oeps, een fout

Je maakt een fout. Kan gebeuren. Je verwijdert bijvoorbeeld per ongeluk half je bestanden en in een vlaag van verstandsverbijstering gooi je je vuilnisbak leeg. Niet getreurd. Git is er voor je hulp. Geef het volgende commando in:

git reset --hard

Wat het doet ? Het brengt al je bestanden terug naar de laatste keer dat je een commit hebt gegeven. Alle bestanden zijn terug, alle wijzigingen zijn ongedaan gemaakt.

Het is ook mogelijk om naar eerdere commits terug te gaan. Elke commit is een snapshot van alle bestanden in uw project.

Klaar om live te gaan

Al je commits klaar? Tijd om je website live te zetten. Zorg dat alle wijzigingen zijn opgeslagen dmv add. en commit. Nu gaan we naar de Master branch

git checkout master

Nu gaan we alle wijzigingen van de develop Branch samenvoegen met je huidige master Branch.

git merge develop

Wat ik nu doe ik wat onderhoud. Als ik composer heb, doe ik een composer update. Ik voer een programma uit wat de code formatteert en ik werkt het changelog bij. Elke keer als ik live ga, werk ik een versie nummer bij. De eerste keer is dus 1.0.0. Vervolgens 1.0.1, etc.. Nu is het tijd voor een commit en een push .

git commit -m "Version 1.0.0"
git push

Als je de stappen in het vorige blog hebt gevolgd worden je updates meteen live gezet. Agicshosting reageert op een push in de master Branch met een pull naar het hosting pakket.

Nu alles klaar is willen we de wijzigingen in master migreren naar develop. Dat doen we als volgt

git checkout develop
git merge master

En gereed, de cirkel is rond en je begint aan je volgende bewerk cyclus.

Het maken van een Hotfix

Terwijl je halverwege je ontwerp van die nieuwe, coole functie bent zie je dat je live website een fout bevat. Je kunt deze aanpassen maar je wil niet wachten totdat die nieuwe functie af is. Dit vraagt om een hotifx. Dat doe je als volgt.

Eerst maak je een nieuwe Branch. Maar die baseer je op je master Branch. Dat is immers de laatste versie die online staat.

git checkout master
git checkout -b hotfix

We hebben nu een nieuwe Branch gemaakt op basis van master. Maar je wijzigingen en sluit af met een commit. Nu brengen we deze live.

git checkout master
git merge hotfix
git commit -m "Hotifx xxxxx"
git push

En de hotfix staat online. Nu kunnen we de wijzigingen migreren met je develop Branch en de hotfix Branch verwijderen.

git checkout develop
git merge master
git branch -d hotfix

En klaar.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *