Skip to content

Instantly share code, notes, and snippets.

@chagel
Created June 17, 2020 22:56
Show Gist options
  • Save chagel/328652e4bfdb1d6d315422d29195c8d0 to your computer and use it in GitHub Desktop.
Save chagel/328652e4bfdb1d6d315422d29195c8d0 to your computer and use it in GitHub Desktop.
Git workflow
# local
# list local branches that merged
git br --merged master | grep -v master
# delete local branches that merged
git branch --merged master | grep -v master | xargs git branch -d
# list local brances not in remote(origin)
git branch -vv | cut -c 3- | awk '$3 !~/\[/ { print $1 }'
# delete local refs from removed remote branches
git remote prune origin --dry-run
git remote prune origin
# pull all remote branches and referenced in local
git branch -r | grep -v '\->' | while read remote; do git branch --track "${remote#origin/}" "$remote"; done
git fetch --all
git pull --all
# remote
# list remote merged branches ordered by last commit time desc
for branch in `git branch -r --merged | grep -v HEAD`; do echo -e `git show --format="%ci %cr %an" $branch | head -n 1` \\t$branch; done | sort -r
# delete remote merged branches that last commit before Y2020
for branch in `git branch -r --merged | grep -v HEAD`; do echo -e `git show --format="%ci %cr %an" $branch | head -n 1` \\t$branch; done | sort -r | grep -v 2020 | awk -F '\torigin/' '{print $2}' | xargs -n1 -r git push -d origin
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment