slogan3

Verbeter mijn SourceTree workflow met geautomatiseerde Git-branch cleanup

description

Met deze prompt kan de gebruiker zijn Git-branches efficiënt beheren door automatisch oude en ongebruikte branches op te schonen. Dit voorkomt rommel in de repository, verbetert de overzichtelijkheid en bespaart tijd vergeleken met manuele opruimprocessen. Het helpt ook om onbedoelde fouten door verouderde branches te verminderen.

prompt

Help mij mijn SourceTree workflow te optimaliseren door geautomatiseerde opruiming van oude en ongebruikte Git-branches. Mijn projectnaam: <voer de naam van mijn project in>. Mijn huidige beleid voor branchbeheer: <beschrijf h ...

try_prompt

generate_helper
disclaimerOnPageApi

ai_answers

provider: openai
model: gpt-4.1-nano
Natuurlijk! Hier is een stapsgewijze gids om je SourceTree workflow te optimaliseren door geautomatiseerde opruiming van oude en ongebruikte Git-branches voor jouw project "MijnWebApp": Stap 1: Begrijp je huidige situatie - Je verwijdert handmatig feature branches na merge. - Oude branches blijven soms achter, wat de overzichtelijkheid vermindert. - Doel: automatiseren en standaardiseren van opruiming. Stap 2: Identificeer inactieve branches - Definieer criteria voor "inactiviteit", bijvoorbeeld branches die al lange tijd niet zijn bijgewerkt of gemerged. - Bijvoorbeeld: branches die geen nieuwe commits hebben sinds meer dan 3 maanden. Stap 3: Gebruik Git-commando’s via SourceTree of terminal - Open de terminal in SourceTree of een externe terminal in je projectmap. Stap 4: Maak een script voor het identificeren van oude branches Hier is een voorbeeld Bash-script dat je kunt aanpassen: ```bash # Ga naar je projectmap cd pad/naar/MijnWebApp # Fetch alle remote branches git fetch --all # Lijst van remote branches die niet gemerged zijn in master/main git branch -r --merged origin/main # Of, om branches te vinden die al lang niet zijn bijgewerkt: git branch -r --sort=committerdate | grep -v 'origin/main' | head -n 10 ``` Stap 5: Automatiseren met een script Hier is een voorbeeld om branches te verwijderen die al lang niet zijn bijgewerkt en niet gemerged: ```bash #!/bin/bash # Defineer de hoofdbranch MAIN_BRANCH="main" # Fetch laatste updates git fetch --all # Vind remote branches die niet gemerged zijn branches=$(git branch -r --no-merged origin/$MAIN_BRANCH | grep -v "$MAIN_BRANCH" | sed 's/origin\///') # Loop door branches en vraag bevestiging voor verwijdering for branch in $branches; do echo "Controleer branch: $branch" # Optioneel: controleer leeftijd met git log # Hier wordt aangenomen dat branches ouder dan 3 maanden verwijderd kunnen worden last_commit_date=$(git log -1 --format="%ct" origin/$branch) current_date=$(date +%s) age=$(( (current_date - last_commit_date) / 86400 )) if [ "$age" -gt 90 ]; then echo "Branch $branch is ouder dan 90 dagen. Verwijderen? (y/n)" read answer if [ "$answer" == "y" ]; then git push origin --delete $branch echo "Branch $branch verwijderd." fi fi done ``` Stap 6: Integratie in SourceTree - Je kunt dit script opslaan als bijvoorbeeld `cleanup_branches.sh`. - Maak het uitvoerbaar: `chmod +x cleanup_branches.sh`. - Voer het uit via de terminal in SourceTree of externe terminal. - Voor herhaald gebruik, maak een aangepaste knop of gebruik de "Custom Actions" in SourceTree. Stap 7: Best practices - Voer deze opruiming regelmatig uit, bijvoorbeeld maandelijks. - Maak een backup of controleer eerst welke branches worden verwijderd. - Documenteer je beleid: branches ouder dan 3 maanden zonder activiteit worden verwijderd. - Overweeg een “dry-run” modus: voeg een parameter toe om te laten zien welke branches verwijderd zouden worden, zonder daadwerkelijk te verwijderen. Stap 8: Gebruik Git Garbage Collection - Om je repository overzichtelijk te houden, voer periodiek uit: ```bash git gc --prune=now --aggressive ``` Stap 9: Automatisering via cron (optioneel) - Plan het script automatisch uit te voeren met cron op bijvoorbeeld je ontwikkelmachine of server. Voorbeeld cronjob: ``` 0 2 1 * * /pad/naar/cleanup_branches.sh ``` Samengevat: - Identificeer oude, niet gemergde branches. - Vraag bevestiging of automatiseer verwijdering. - Verwijder remote branches veilig. - Voer regelmatig garbage collection uit. Met deze aanpak houd je je "MijnWebApp" repository overzichtelijk en vrij van verouderde branches.
provider: deepseek
model: deepseek-chat
Zeker, hier is een stapsgewijze handleiding om je Git branches geautomatiseerd op te ruimen in SourceTree voor je project "MijnWebApp": ### Stap 1: Identificeer ongebruikte branches **Via SourceTree GUI:** 1. Open je repository "MijnWebApp" in SourceTree 2. Klik op "Branches" in de zijbalk 3. Sorteer op "Laatste commit" om oude branches te zien 4. Branches zonder "main/master" en "develop" zijn kandidaat voor verwijdering **Via Git Commando (in SourceTree Terminal):** ```bash # Toon branches die zijn samengevoegd met main git branch --merged main # Toon branches die NIET zijn samengevoegd git branch --no-merged main # Toon remote branches die zijn samengevoegd git branch -r --merged origin/main ``` ### Stap 2: Veilige verwijderingsprocedure **Handmatige controle voor verwijdering:** 1. **Altijd eerst pullen:** `git fetch --all --prune` 2. **Controleer of branch is gemerged:** ```bash git checkout main git branch --merged ``` 3. **Verwijder lokale branches:** ```bash git branch -d feature/oude-branch-naam ``` 4. **Verwijder remote branches:** ```bash git push origin --delete feature/oude-branch-naam ``` ### Stap 3: Automatisering met Git Hooks (Aanbevolen) **Post-merge hook aanmaken:** 1. Navigeer naar je repository: `MijnWebApp/.git/hooks/` 2. Maak bestand `post-merge` (zonder extensie) 3. Voeg deze code toe: ```bash #!/bin/bash # Automatisch oude branches opruimen na merge git fetch -p for branch in $(git for-each-ref --format '%(refname:short) %(upstream:track)' refs/heads | grep '\[gone\]' | awk '{print $1}'); do git branch -d $branch echo "Verwijderde branch: $branch" done ``` 4. Maak uitvoerbaar: `chmod +x post-merge` ### Stap 4: SourceTree Custom Actions **Maak een opruim-script in SourceTree:** 1. Ga naar **Settings > Custom Actions** 2. Klik **Add** 3. Configureer: - **Menu Caption:** `Branches opruimen` - **Script to run:** `git` - **Parameters:** `fetch -p && git for-each-ref --format '%(refname:short) %(upstream:track)' refs/heads | grep '\[gone\]' | awk '{print $1}' | xargs -r git branch -d` ### Stap 5: Branch Beleid Best Practices 1. **Branch naming convention:** - `feature/korte-beschrijving` - `bugfix/issue-nummer` - `hotfix/dringende-aanpassing` 2. **Automatische tracking:** ```bash # Stel upstream in voor nieuwe branches git push -u origin branch_naam ``` 3. **Periodieke cleanup (elke 2 weken):** ```bash # Complete cleanup script git fetch -p git branch -r --merged origin/main | grep -v "main" | sed 's/origin\///' | xargs -n 1 git push origin --delete git branch --merged main | grep -v "main" | xargs git branch -d ``` ### Stap 6: Veiligheidsmaatregelen **Belangrijke branches beschermen:** 1. **Branch protectie instellen:** ```bash # Maak branch regel bestand git config --add protectedbranch.paths "main" git config --add protectedbranch.paths "develop" ``` **Backup voor verwijderde branches:** ```bash # Maak backup tag voor belangrijke branches git tag archive/feature-oude-branch feature/oude-branch git push origin --tags ``` ### Stap 7: Team Afspraken 1. **Communicatie:** Laat teamleden weten over cleanup schedule 2. **Documentatie:** Houd bij welke branches worden verwijderd 3. **Review:** Doe wekelijkse branch review met team ### Snelle Checklist voor Dagelijks Gebruik: - [ ] Fetch met prune in SourceTree (Ctrl+Shift+P) - [ ] Gebruik Custom Action voor branch cleanup - [ ] Verwijder alleen gemergde branches - [ ] Communiceer belangrijke branch verwijderingen Deze workflow zal je repository "MijnWebApp" overzichtelijk houden en voorkomen dat oude branches zich opstapelen. Begin met handmatige toepassing en implementeer daarna de geautomatiseerde scripts voor efficiëntie.