Git, GitHub en WorkingCopy
Arnout van Kempen over rommelen in een digitale wereld.
Eenmaal aan het coderen geslagen, doemen al snel nieuwe uitdagingen op. Hoe zorg je dat al je source-code vanaf ieder apparaat waar je mee wil werken bereikbaar is, bijvoorbeeld? En wat heb je aan versie-management geregeld? Zou je met anderen aan een project willen samenwerken en hoe dan?
Het antwoord op die vragen is git. Er zijn alternatieven, maar git zit standaard al in Pi OS en het werkt ook nog eens betrekkelijk eenvoudig. De link geeft een handleiding voor kinderen en die kan ik van harte aanbevelen voor volwassenen die snel resultaat willen.
Met git verander je iedere directory die je maar wil in een 'repo'. Vanaf dat moment houdt git voor je bij welke veranderingen je hebt aangebracht in je bestanden, met name in je source-code. Als je tevreden bent met wat je gedaan hebt, kan je met een commit aan git vertellen dat je code deel uitmaakt van je project. Je kunt daar nog berichten aan toevoegen en als je wil kan je ook verschillende versies bewaren. Leuk als je een ontwikkelteam bent van dertig programmeurs, maar wat moet je daar als hobbyist mee? Niet heel veel misschien, maar het kan zomaar ineens best lekker zijn als je een domme fout ontdekt en je kan terug naar een eerdere versie.
Leuker wordt het als je je aanpassingen niet alleen commit, maar ook pusht naar bijvoorbeeld GitHub. Wat je dan doet, is je lokale repo synchroniseren met een online versie van diezelfde repo. GitHub is niet de enige mogelijkheid, maar wel een erg bekende. Door GitHub te gebruiken krijg je een paar aardige extra functionaliteiten:
- Je repo is online opgeslagen en daarmee heb je meteen een backup.
- Een repo kan private zijn, maar ook public. Dat betekent dat je in principe je repo kunt delen met iedereen die dat interessant vindt. Als je dat wilt, kan je anderen ook toelaten om bij te dragen aan jouw project. Wie en hoe bepaal je daarbij zelf.
- Door de synchronisatie bij GitHub te beleggen kan je vanuit verschillende devices aan hetzelfde project werken, zonder je druk te hoeven maken over verschillende versies op verschillende devices, terwijl je toch volledig de voordelen van lokaal werken hebt.
Als team van 1 persoon vind ik GitHub+git mooi; met de iPad-apps WorkingCopy en GitHub wordt het nog wat mooier. De GitHub-app is in feite gewoon een voor de iPad geoptimaliseerde view op GitHub, maar WorkingCopy is de echt leuke app. Hiermee doe je op de iPad wat git doet in Linux. Je beheert je lokale repo en die is direct via de Files-app normaal toegankelijk alsof het een folder is. En via het hele beheersysteem van git/GitHub hou je je source-codes op de iPad gelijk aan je repo op de Pi. Dus coderen op de iPad en compileren op de Pi, zonder een centje pijn.
Maar is het dan niet eenvoudiger om gewoon rechtstreeks vanaf de iPad op de Pi te werken, via Samba of Blink? Jawel, mits de Pi verbonden is. Maar wat nu als je je iPad bij je hebt en de Pi niet? Dan ga je het nut van WorkingCopy direct zien. Wat je op de iPad doet, kan je later synchroniseren met je Pi en het systeem houdt het versiebeheer in de gaten.
Overigens kan je ook vanuit de Pi weer bestanden synchroniseren naar de iPad, maar daar loop ik nog tegen een praktisch probleempje aan. En persoonlijk vind ik die optie ook nog niet heel nuttig.
Gerelateerd
![](/siteassets/accountant.nl/afbeeldingen-440x300/ict-technologie-cybersecurity-toekomst/moederbord-440x300.jpg)
Wat is het verschil tussen een computer en pen en papier?
Arnout van Kempen over rommelen in een digitale wereld.
![](/siteassets/accountant.nl/afbeeldingen-440x300/ict-technologie-cybersecurity-toekomst/moederbord-440x300.jpg)
Wat is het verschil tussen een computer en een wasmachine?
Arnout van Kempen over rommelen in een digitale wereld.
![](/siteassets/accountant.nl/afbeeldingen-440x300/ict-technologie-cybersecurity-toekomst/moederbord-440x300.jpg)
Wat is het verschil tussen een computer en een mens?
Arnout van Kempen over rommelen in een digitale wereld.
![](/siteassets/accountant.nl/afbeeldingen-440x300/ict-technologie-cybersecurity-toekomst/moederbord-440x300.jpg)
Wat alle accountants zouden moeten weten over computers
Arnout van Kempen over rommelen in een digitale wereld.