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:

  1. Use feature branches, no direct commits on master
  2. Test all commits, not only ones on master
  3. Run all the tests on all commits (if your tests run longer than 5 minutes have them run in parallel).
  4. Perform code reviews before merges into master, not afterwards.
  5. Deployments are automatic, based on branches or tags.
  6. Tags are set by the user, not by CI.
  7. Releases are based on tags.
  8. Pushed commits are never rebased.
  9. Everyone starts from master, and targets master.
  10. Fix bugs in master first and release branches second.
  11. 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