Help mij met het opzetten van een Git workflow voor consistente commit message conventies
description
Deze prompt helpt gebruikers een duidelijk en uniform commit message beleid op te zetten, waardoor de Git geschiedenis overzichtelijk blijft en samenwerking verbetert. Het lost problemen op zoals verwarring door inconsistente berichtgeving en vereenvoudigt het terugvinden van wijzigingen. Het biedt praktische tools en voorbeelden die beter zijn dan ad-hoc commit berichten zonder richtlijnen.
prompt
Help mij bij het opzetten van een Git workflow voor mijn projecttype: <voer het type project in> waarin ik consistente en duidelijke commit messages wil gebruiken. Leg uit hoe ik een commit message conventie kan k ...
try_prompt
generate_helper
disclaimerOnPageApi
tags
ai_answers
provider: openai
model: gpt-4.1-nano
Natuurlijk! Hier is een overzicht om een effectieve Git workflow en commit message conventie voor je webapplicatie op te zetten:
1. Kies een Commit Message Conventie
-------------------------------------
Selecteer een gestandaardiseerde structuur voor je commit berichten, zoals de [Conventional Commits](https://www.conventionalcommits.org/). Deze conventie gebruikt prefixen zoals:
- feat: nieuwe functionaliteit
- fix: bugfix
- docs: documentatie
- style: code formatting, geen functionele verandering
- refactor: codewijziging die geen feature of bugfix is
- test: testgerelateerde wijzigingen
- chore: onderhoud, niet in productie
Voorbeeld:
```
feat: voeg gebruikersauthenticatie toe
fix: herstel crash bij inloggen
docs: update API-documentatie
```
2. Implementatie van Consistentie en Validatie
------------------------------------------------
Om te zorgen dat iedereen zich aan de conventie houdt, kun je tools gebruiken:
- **commitlint**: controleert of je commit berichten voldoen aan de afgesproken regels.
- **Husky**: helpt bij het automatisch uitvoeren van Git hooks, zoals pre-commit of commit-msg hooks.
**Stappenplan:**
a. Installeer commitlint en Husky in je project:
```bash
npm install --save-dev @commitlint/{config-conventional,cli} husky
```
b. Configureer commitlint door een `commitlint.config.js` aan te maken:
```js
module.exports = { extends: ['@commitlint/config-conventional'] };
```
c. Activeer Husky en voeg een commit-msg hook toe:
```bash
npx husky install
npx husky add .husky/commit-msg 'npx --no -- commitlint --edit "$1"'
```
d. Nu worden alle commit berichten gecontroleerd vóór ze worden toegevoegd.
3. Goede Praktijken voor Commit Berichten
------------------------------------------
- Wees duidelijk en beschrijvend: wat is er veranderd en waarom?
- Gebruik de juiste prefix volgens de conventie.
- Maak korte, bondige berichten, bij voorkeur niet langer dan 50 tekens voor de titel.
- Voeg indien nodig een uitgebreide beschrijving toe onder de titel, gescheiden door een lege regel.
Voorbeelden:
```
feat: voeg login pagina toe
- gebruikers kunnen nu inloggen met email en wachtwoord
- toegevoegd login component en bijbehorende API calls
```
4. Tips voor een Overzichtelijke Geschiedenis
---------------------------------------------
- Maak kleine, gerichte commits die één ding veranderen.
- Gebruik duidelijke en consistente taal.
- Vermijd commit berichten als "fix stuff" of "updates".
- Maak gebruik van branches: werk bijvoorbeeld op feature- of bugfix-branches en merge naar develop of main na review.
Door bovenstaande aanpak te volgen, zorg je voor een consistente, begrijpelijke en overzichtelijke Git geschiedenis, wat de samenwerking en het onderhoud van je webapplicatie ten goede komt.
provider: deepseek
model: deepseek-chat
Zeker! Ik help je graag bij het opzetten van een gestructureerde Git-workflow voor je webapplicatie. Hier is een stapsgewijze handleiding:
## 1. Kies een Commit Message Conventie
**Populaire conventies:**
- **Conventional Commits**: Meest gebruikt, duidelijk gestructureerd
- **Angular Commit Guidelines**: Uitgebreid en gedetailleerd
**Aanbevolen: Conventional Commits formaat:**
```
<type>(<scope>): <korte beschrijving>
[optioneel lichaam]
[optioneel footer]
```
**Types:**
- `feat`: Nieuwe functionaliteit
- `fix`: Bugfix
- `docs`: Documentatie wijzigingen
- `style`: Opmaak, geen functionaliteit
- `refactor`: Code refactoring
- `test`: Test toevoegen/wijzigen
- `chore`: Overige taken
## 2. Tools voor Afdwinging
**Installatie commitlint:**
```bash
npm install --save-dev @commitlint/cli @commitlint/config-conventional
```
**commitlint.config.js:**
```javascript
module.exports = {
extends: ['@commitlint/config-conventional'],
rules: {
'type-enum': [2, 'always', [
'feat', 'fix', 'docs', 'style', 'refactor', 'test', 'chore'
]],
'subject-case': [2, 'always', 'lower-case']
}
};
```
**Git Hook instellen met Husky:**
```bash
npm install --save-dev husky
npx husky install
npx husky add .husky/commit-msg 'npx --no -- commitlint --edit "$1"'
```
## 3. Voorbeelden van Goede Commit Messages
**Goed:**
```
feat(auth): add two-factor authentication
- Implement Google Authenticator integration
- Add backup code generation
- Update login form for 2FA input
Closes #123
```
```
fix(api): resolve CORS issues with frontend
Allow requests from localhost:3000 in development
Update CORS middleware configuration
Fixes #456
```
```
docs(readme): update installation instructions
Add Docker setup guide and environment variables
section for production deployment
```
**Slecht:**
- "fixed stuff"
- "update"
- "wip"
- "changes"
## 4. Tips voor Overzichtelijke Geschiedenis
1. **Commit vaak, push regelmatig**
2. **Één logische wijziging per commit**
3. **Gebruik betekenisvolle branch names:**
- `feat/user-authentication`
- `fix/login-bug`
- `docs/api-reference`
4. **Squash commits voor clean history:**
```bash
git rebase -i HEAD~3
```
5. **Commit message template instellen:**
```bash
git config commit.template .gitmessage.txt
```
## 5. Team Afspraken
1. **Documenteer de conventie** in `CONTRIBUTING.md`
2. **Code reviews** controleren commit messages
3. **Gebruik pre-commit hooks** voor consistentie
4. **Regular feedback** over commit kwaliteit
## 6. Extra Tooling
**Commitizen voor interactieve commits:**
```bash
npm install -g commitizen
npm install --save-dev cz-conventional-changelog
```
**Package.json:**
```json
{
"config": {
"commitizen": {
"path": "./node_modules/cz-conventional-changelog"
}
}
}
```
Met deze workflow zorg je voor een professionele, leesbare Git geschiedenis die het onderhoud en samenwerken aan je webapplicatie aanzienlijk verbetert!