8. I'M DOING A (FREE) OPERATING SYSTEM
(JUST A HOBBY, WON'T BE BIG AND
PROFESSIONAL LIKE GNU) FOR 386(486)
AT CLONES.
Linus Torvalds, 25-08-1991
GIT HISTORY
11. BITKEEPER
▸ Gratis voor Linux-maintainers (niet opensource)
▸ Iemand probeert Bitkeeper te reverse
engineeren
▸ Bitkeeper stopt met Linux te steunen
▸ April 2005 gestart met eerste versie git
GIT HISTORY
15. GIT == DATA-INTEGRITEIT
▸ Alles in git gechecksummed met SHA-1
hash naar een hexadecimale string van 40
karakters
▸ Elke wijziging opspoorbaar
▸ Alles is omkeerbaar
GIT BASICS
16. 3 STADIA
▸ Modified
▸ Gewijzigd maar niet opgeslagen
▸ Staged
▸ Klaargezet om te committen
▸ Cmmitted
▸ “Opgeslagen”
GIT BASICS
17. BRANCHING
▸Branch is een snapshot van de situatie
op het moment waar de branch
afgetakt is
▸Branch is letterlijk een aftakking
▸Je kan branchen op een branch
GIT BASICS
18. .GITIGNORE
▸ File met te negeren bestanden
▸ Typisch voor bestanden met gevoelige informatie of
tijdelijke bestanden
▸ Repo basis: vb file met database-wachtwoorden
▸ Globaal hele systeem: vb. tmp-files typisch voor het OS
GIT BASICS
21. 7 REGELS VOOR EEN GOEDE COMMIT MESSAGE
1. Hou onderwerp en body gescheiden met 1 witregel
2. Beperk de lengte van het onderwerp tot 50 karakters
3. Het onderwerp begint met een hoofdletter
4. Gebruik geen punt op het einde van het onderwerp
5. Gebruik de gebiedende wijs in het onderwerp
6. Beperk de breedte van de body to 72 karakters
7. Geef in je body een uitleg voor wat en waarom, niet over hoe
COMMIT MESSAGES
22. MEER OVER COMMIT MESSAGES
▸ Een rant van Linus Torvalds over commit-messages:
▸ https://github.com/torvalds/linux/pull/
17#issuecomment-5659933
▸ Blogpost die dieper ingaat op deze 7 regels:
▸ http://chris.beams.io/posts/git-commit/
COMMIT MESSAGES
24. MERGE
▸ Makkelijkst
▸ Laat de geschiedenis as
is
▸ Extra commit iedere
keer changes van master
worden gemerged
▸ Geeft een heel slordige
git-history
▸ Minder geschikt voor
team-werk
MERGE VS REBASE
25. REBASE
▸ Iets geavanceerder
▸ Geen overbodige
merge-commits
▸ Mooie lineaire
geschiedenis
▸ Geschiedenis
herschreven, niet
gebruiker op publieke
branches
MERGE VS REBASE
27. WANNEER?
▸ Wanneer eenzelfde lijn in eenzelfde bestand is aangepast
in 2 branches.
▸ Wanneer een file in 1 branch verwijderd is maar in een
andere gewijzigd.
MERGE CONFLICTS
30. GITHUB
▸ Marktleider hosting git-repo’s
▸ Meeste open-source projecten zitten op git
GITLAB
▸ Evenwaardig maar kleiner
▸ Snelle progressie
▸ Kan sneller groeien door te leren uit fouten github
WORKFLOW
32. CODE TERUG NAAR MASTER
▸ Indien de feature/bug klaar —> PR op Github
▸ Rebasen met master (changes in master naar branch brengen)
▸ Wordt toegewezen aan iemand van het team en nagekeken
▸ Code review is een leerrijk proces en geen ego-kwestie
▸ Jij bent je code niet
▸ Stijl en syntax automatisch laten checken (voorkomt al heel wat ego-zaken)
▸ Zorg voor een ci die automatisch testen loopt en zo al een eerste vorm van
feedback geeft, testen falen == probleem
▸ Indien ok de pull-request gemerged en automatisch een deploy naar productie
WORKFLOW