slogan3

Optimaliseer mijn SourceTree workflow met aangepaste Git hooks

description

Met deze prompt kan ik leren hoe ik mijn SourceTree setup kan verbeteren door Git hooks te gebruiken die automatisch controles uitvoeren en taken uitvoeren tijdens het commit- en pushproces. Dit vermindert menselijke fouten, versnelt mijn workflow en zorgt voor een hogere codekwaliteit. Het is praktischer dan alleen handmatige controles en biedt een directe integratie met SourceTree.

prompt

Help me bij het maken en implementeren van aangepaste Git hooks in SourceTree om mijn workflow te automatiseren en fouten te verminderen. Beschrijf welke hooks ik kan gebruiken voor pre-commit, post-commit ...

try_prompt

generate_helper
disclaimerOnPageApi

ai_answers

provider: openai
model: gpt-4.1-nano
Natuurlijk! Git hooks zijn scripts die automatisch worden uitgevoerd op bepaalde momenten in je Git-workflow, zoals vóór een commit of vóór een push. In SourceTree kun je deze hooks gebruiken door ze toe te voegen aan je repository’s `.git/hooks` map. Hier volgt een overzicht van relevante hooks, voorbeelden van scripts en hoe je ze kunt instellen voor je project "WebApp2024". **1. Beschikbare hooks en hun functies:** - **pre-commit:** Wordt uitgevoerd voordat een commit wordt gemaakt. Handig voor code checks, linting, of tests. - **post-commit:** Wordt uitgevoerd nadat een commit is gemaakt. Kan gebruikt worden voor notificaties of logs. - **pre-push:** Wordt uitgevoerd voordat je code pusht naar de remote. Ideaal voor het uitvoeren van integratietests of code review checks. --- **2. Voorbeelden van scripts:** **a. pre-commit: Code linting en controle** ```bash #!/bin/sh echo "Running lint checks..." # Bijvoorbeeld, voor een JavaScript project met ESLint ./node_modules/.bin/eslint src/ || { echo "Linting failed. Commit geannuleerd." exit 1 } ``` **b. pre-commit: Testen uitvoeren** ```bash #!/bin/sh echo "Running unit tests..." npm test || { echo "Tests zijn niet geslaagd. Commit geannuleerd." exit 1 } ``` **c. post-commit: Notificatie sturen** ```bash #!/bin/sh echo "Commit gemaakt op $(date)" | mail -s "Nieuwe commit in WebApp2024" je.email@voorbeeld.com ``` **d. pre-push: Build en integratietests** ```bash #!/bin/sh echo "Uitvoeren van build en tests voor push..." npm run build && npm test || { echo "Build of tests gefaald. Push geannuleerd." exit 1 } ``` --- **3. Hoe je de hooks instelt in SourceTree:** 1. **Navigeren naar je repository:** Ga naar de map van je project "WebApp2024" op je computer. 2. **Ga naar de `.git/hooks` directory:** Deze map bevat voorbeeldscripts zoals `pre-commit.sample`. 3. **Maak de hook scripts aan of bewerk ze:** - Verwijder de `.sample` extensie bij de scripts die je wilt gebruiken. - Bijvoorbeeld, maak een bestand `pre-commit` aan: ```bash touch .git/hooks/pre-commit ``` - Open het bestand in een teksteditor en plak je script erin. 4. **Maak het script uitvoerbaar:** ```bash chmod +x .git/hooks/pre-commit ``` 5. **Test de hooks:** Probeer een commit of push via SourceTree. Als je script faalt, wordt de actie afgebroken. --- **4. Belangrijke tips:** - Plaats je scripts in de `.git/hooks` map en maak ze uitvoerbaar. - Voor gedeelde projecten kun je de hooks delen door ze in een directory te plaatsen en een setup-script te maken dat ze kopieert naar `.git/hooks`. - SourceTree voert standaard alleen de Git hooks uit; het heeft geen speciale instellingen nodig om hooks te gebruiken. --- **Samenvatting voor jouw project "WebApp2024":** - Gebruik `pre-commit` hooks voor linting en tests vóór je commit. - Gebruik `pre-push` hooks om builds en tests te automatiseren voordat je pusht. - Voeg je scripts toe aan `.git/hooks/` en maak ze uitvoerbaar. - Test je hooks door acties via SourceTree uit te voeren en te controleren of de scripts correct werken. Mocht je specifieke scripts nodig hebben of hulp bij het schrijven ervan, laat het gerust weten!
provider: deepseek
model: deepseek-chat
Zeker! Ik help je met het opzetten van aangepaste Git hooks voor je WebApp2024 project in SourceTree. Hier is een complete handleiding: ## Git Hooks Locatie Eerst moet je weten waar je hooks komen: - **Pad naar hooks map**: `WebApp2024/.git/hooks/` - Maak bestanden aan zonder extensie (bijv. `pre-commit`) ## Aanbevolen Hooks voor WebApp2024 ### 1. Pre-commit Hook (vóór elke commit) **Doel**: Code kwaliteit controleren **Voorbeeld script** (`pre-commit`): ```bash #!/bin/bash # Linting controleren echo "Running ESLint..." npx eslint --fix --ext .js,.jsx,.ts,.tsx src/ # TypeScript types controleren echo "Checking TypeScript..." npx tsc --noEmit # Testen uitvoeren echo "Running tests..." npm test -- --passWithNoTests # If any check fails, prevent commit if [ $? -ne 0 ]; then echo "❌ Pre-commit checks failed. Commit aborted." exit 1 fi echo "✅ All pre-commit checks passed!" exit 0 ``` ### 2. Pre-push Hook (vóór push naar remote) **Doel**: Zorgen dat alleen werkende code gepushed wordt **Voorbeeld script** (`pre-push`): ```bash #!/bin/bash echo "🧪 Running comprehensive tests before push..." npm run test:ci if [ $? -ne 0 ]; then echo "❌ Tests failed! Push aborted." exit 1 fi echo "📦 Building project..." npm run build if [ $? -ne 0 ]; then echo "❌ Build failed! Push aborted." exit 1 fi echo "✅ All pre-push checks passed! Pushing to remote..." exit 0 ``` ### 3. Post-commit Hook (ná elke commit) **Doel**: Notificaties en logging **Voorbeeld script** (`post-commit`): ```bash #!/bin/bash # Commit info loggen echo "📝 Commit completed: $(git log -1 --pretty=%B)" >> .git/commit_log.txt # Desktop notificatie (indien gewenst) # notify-send "Git Commit" "Nieuwe commit gemaakt in WebApp2024" echo "✅ Commit successfully completed and logged" ``` ## Configuratie in SourceTree ### Stap 1: Hooks Bestanden Maken 1. Open terminal in je projectmap 2. Navigeer naar `.git/hooks/` 3. Maak bestanden aan: ```bash cd WebApp2024/.git/hooks/ touch pre-commit pre-push post-commit ``` ### Stap 2: Scripts Toevoegen 1. Open elk bestand in een teksteditor 2. Plak het bijbehorende script 3. Maak uitvoerbaar: ```bash chmod +x pre-commit pre-push post-commit ``` ### Stap 3: SourceTree Instellingen 1. Open SourceTree → Preferences → Advanced 2. Zorg dat "Allow Git hooks to run" is aangevinkt 3. Sla instellingen op ## Aanvullende Tips voor WebApp2024 ### Voor Node.js Projecten: ```bash #!/bin/bash # Dependency check if [ ! -d "node_modules" ]; then npm install fi ``` ### Voor Branch Protection: ```bash #!/bin/bash # Voorkom push naar main branch CURRENT_BRANCH=$(git symbolic-ref HEAD | sed -e 's,.*/\(.*\),\1,') if [ "$CURRENT_BRANCH" = "main" ]; then echo "❌ Direct push naar main branch is niet toegestaan!" echo "Gebruik een pull request instead." exit 1 fi ``` ## Foutafhandeling Voeg altijd error handling toe: ```bash #!/bin/bash set -e # Stop bij eerste error # Je script hier... ``` ## Testen van Hooks Test je hooks lokaal: ```bash # Simuleer pre-commit ./.git/hooks/pre-commit # Check exit status echo $? ``` Let op: Hooks zijn lokaal per repository, dus elke developer moet ze zelf installeren. Overweeg om hook templates toe te voegen aan je project en documenteer dit in je README. Succes met het automatiseren van je WebApp2024 workflow! 🚀