cfg/bin/git-ps

32 lines
807 B
Plaintext
Raw Normal View History

2016-07-21 13:48:49 +00:00
#!/bin/bash
set -o pipefail
set -e
source "${HOME}/bin/script_framework.sh"
2016-07-21 13:48:49 +00:00
step "Loading required keys to pull"
git loadkey
2016-07-21 13:48:49 +00:00
step "Fetching data from remote..."
for remote in $(git remote -v | awk '{print $1}' | sort | uniq); do
step "+++ Remote: '${remote}'"
git fetch -p ${remote} --tags
2016-07-21 13:48:49 +00:00
done
step "Rebasing branch / updating submodules..."
git pull --rebase && git submodule update --init --recursive
step "Cleaning local branches..."
for branch in $(git branch --merged | grep -v '^*'); do
# Do not delete master as the main branch
if (test "${branch}" != "master"); then
2016-07-21 13:48:49 +00:00
git branch -d ${branch}
fi
done
step "Removing local branches where remote branch is gone..."
if (git branch -vv | grep -q ': gone]'); then
2016-10-24 06:20:44 +00:00
git branch -vv | awk '/: gone]/{print $1}' | xargs git branch -D
fi