Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Script to delete branches older than 6 months old, ignore local vs remote errors.
#!/bin/sh
ECHO='echo '
for branch in $(git branch -a | sed 's/^\s*//' | sed 's/^remotes\///' | grep -v 'main$\|develop$'); do
if ! ( [[ -f "$branch" ]] || [[ -d "$branch" ]] ) && [[ "$(git log $branch --since "1 month ago" | wc -l)" -eq 0 ]]; then
if [[ "$DRY_RUN" = "false" ]]; then
ECHO=""
fi
local_branch_name=$(echo "$branch" | sed 's/remotes\/origin\///')
$ECHO git branch -d "${local_branch_name}"
$ECHO git push origin --delete "${local_branch_name}"
fi
done
@samuelarogbonlo
Copy link

samuelarogbonlo commented Feb 17, 2022

Can this script be added to a CI ?

@devhpes
Copy link

devhpes commented Jul 22, 2022

Yes It can be added.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment