Integrate branch jumping during git ps
Signed-off-by: Knut Ahlers <knut@ahlers.me>
This commit is contained in:
parent
10b2be5a1a
commit
ebc6c7bb02
1 changed files with 15 additions and 10 deletions
25
bin/git-ps
25
bin/git-ps
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue