Delete All Local Branches Except main
A handy one-liner to clean up all your local Git branches except main. It uses -D to force-delete each branch, even if it hasn’t been merged—so be careful. If you want a safer version…
Currently accepting new projects and available for hire.
A tiny shell script that recursively scans a directory for Git repositories with uncommitted changes, nicknamed dirgit—a play on words combining "directory", "dirty", and "git".
#!/bin/bash
# Use current directory or first argument
ROOT="${1:-$(pwd)}"
# Find all Git repositories and check for dirty state
find "$ROOT" -type d -name ".git" 2>/dev/null | while read -r gitdir; do
repo="$(dirname "$gitdir")"
cd "$repo" || continue
if [[ -n $(git status --porcelain) ]]; then
echo "$repo"
fi
done
Save it as dirgit (or any name you prefer), make it executable (chmod +x dirgit), and place it in /usr/local/bin or ~/bin to use it globally.
dirgit # scan current directory
dirgit ~/code # scan a specific directory
A handy one-liner to clean up all your local Git branches except main. It uses -D to force-delete each branch, even if it hasn’t been merged—so be careful. If you want a safer version…
If brew services start httpd succeeds but brew services list shows an error with root as the user, you likely have a leftover system LaunchDaemon from a previous sudo brew services invocation…
When working with feature branches, it’s easy for your local repository to accumulate branches that were already deleted on the remote. This snippet safely removes all local branches whose…