Git hygiene Akira
Cleanup branch task/* mergiati
Eseguire periodicamente, ad esempio dopo batch grossi di task mergeati, per
ridurre rumore in git branch -r e fetch remoti.
Preview:
./scripts/cleanup_stale_branches.sh --dry-run
Applicazione:
./scripts/cleanup_stale_branches.sh
Lo script:
- esegue
git fetch --prune origin; - seleziona solo
origin/task/*gia' mergiati inorigin/master; - prima di cancellare crea e pusha un tag
archive/cleanup-task-branches-YYYYMMDD_HHMMSS; - cancella i branch remoti con
git push origin --delete; - cancella anche eventuali branch locali omonimi gia' mergiati.
Recovery
Ogni cleanup crea un tag archive puntato alla base usata per decidere i branch mergiati. Per ripristinare un branch:
git push origin archive/cleanup-task-branches-YYYYMMDD_HHMMSS:refs/heads/task/TASK-NN
Lista tag archive:
git tag -l 'archive/*'
Garbage collection tag archive
La pulizia tag non fa parte del cleanup ordinario. Una volta l'anno si possono rimuovere i tag archive piu' vecchi di 12 mesi dopo verifica manuale:
git tag -l 'archive/cleanup-task-branches-*'
Per cancellare un tag locale e remoto:
git tag -d archive/cleanup-task-branches-YYYYMMDD_HHMMSS
git push origin --delete archive/cleanup-task-branches-YYYYMMDD_HHMMSS
Automazione opzionale
Cron settimanale sul Toolbox:
#!/usr/bin/env bash
set -euo pipefail
cd /home/devcomm/akira
./scripts/cleanup_stale_branches.sh
La modalita' GitHub Actions e' lasciata fuori dal repository per ora: il token
standard GITHUB_TOKEN puo' non avere permessi di delete branch sufficienti e
Akira preferisce review manuale prima di rimuovere branch remoti.