Integrate branch jumping during git ps

Signed-off-by: Knut Ahlers <knut@ahlers.me>
This commit is contained in:
Knut Ahlers 2019-07-26 15:19:33 +02:00
parent 10b2be5a1a
commit ebc6c7bb02
Signed by: luzifer
GPG key ID: DC2729FDD34BE99E

View file

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