git strategy - Chelsey-bommer/Matching-wiki GitHub Wiki
Hier komt mijn git strategie.
- Hoe zien mijn commit messages eruit?
- Welke Branching strategie ga ik gebruiken?
Commit messages
Het is belangrijk om goede commit messages te hebben, zodat je later elke commit makkelijk kan terug vinden.
Wat vind ik zelf belangrijk voor mijn messages:
- Kort
- Overzichtelijk
- Inhoudelijk duidelijk wat ik heb gedaan
Tips van FreeCodeCamp & InitialCommit die ik zelf ook handig vind:
- Gebruik capitalization
- Specificeer het type commit. Example: Bugfix, Update, Docs
- Maak duidelijk waarom je de commits maakt
- Imperative mood
Conclusie
Mijn git messages worden duidelijk en overzichtelijk door : kortheid, type commits, waarom en de imperative mood.
Branching strategie
Bekende branching strategieën:
Gitflow strategie
De gitflow is de populairste workflow van alle. Hier heb je 2 main branches:
- De master (main) -> Hier komt alles uiteindelijk in te staan.
- Develop -> Hier in doe je alle updates in voordat ze uiteindelijk naar de main gaan.
Dan heb je nog wat kleinere branches voor:
- Nieuwe features
- Hotfix -> Een snelle fix tussendoor
- Release -> deze verzamelt alles voor een nieuwe release naar de main
Een nadeel dat hier wel bij staat is dat je git history moeilijk wordt om te lezen, dus dit lijkt me daarom geen goede optie voor mij.
Github flow
De github flow is een simpele manier om te werken op github. Alles verbindt op de main, en wanneer je aan iets nieuws wilt werken maak je hier een nieuwe branch voor. Deze geef je een beschrijvende naam. Pull en commit met deze branch. Gebruik pull requests.
Deze is vrij simpel en handig in gebruik.
GitLab Flow
De GitLab Flow werkt met de volgende 11 regels:
- Use feature branches, no direct commits on master
- Test all commits, not only ones on master
- Run all the tests on all commits (if your tests run longer than 5 minutes have them run in parallel).
- Perform code reviews before merges into master, not afterwards.
- Deployments are automatic, based on branches or tags.
- Tags are set by the user, not by CI.
- Releases are based on tags.
- Pushed commits are never rebased.
- Everyone starts from master, and targets master.
- Fix bugs in master first and release branches second.
- Commit messages reflect intent.
Deze is vrij ingewikkeld om mee te werken, dus deze lijkt me daarom niet geschikt voor mij.
Conclusie
De beste optie is de Github Flow. Deze is simpel en overzichtelijk, en ook niet te moeilijk om alles te onthouden.
Sources
https://www.freecodecamp.org/news/how-to-write-better-git-commit-messages/
https://initialcommit.com/blog/git-commit-messages-best-practices#general-commit-message-guidelines
https://www.gitkraken.com/learn/git/best-practices/git-branch-strategy