aliases: Introduce git_parent and associated rebase aliases

This commit is contained in:
Robin-Charles Guihéneuf 2020-10-23 09:34:07 +02:00
parent 1599f4cd09
commit f91e1e787c

View File

@ -90,6 +90,28 @@ alias cont='git rebase --continue'
alias branch_clean='git branch --merged | egrep -v "(^\*|master|dev)" | xargs git branch -d'
alias tag_clean='git tag -l | xargs git tag -d && git fetch -t'
function git_parent {
git log --pretty=format:"%D" | \
grep -v "^$" | \
sed "s/, /\n/g" | \
grep -v "HEAD" | \
grep -v `git rev-parse --abbrev-ref HEAD` | \
grep -v "tag" | \
head -n1 | \
sed "s/origin\/\([^,]*\)/\1/"
}
function git_parent_tag {
git log --pretty=format:"%D" | \
grep -v "^$" | \
sed "s/, /\n/g" | \
grep -v "HEAD" | \
grep -v `git rev-parse --abbrev-ref HEAD` | \
head -n1 | \
sed "s/origin\/\([^,]*\)/\1/" | \
sed "s/tag: \([^,]*\)/\1/"
}
alias log='git log --graph --decorate --oneline'
# Branch
@ -138,18 +160,46 @@ function grbm {
git rebase --interactive master
}
function grbr {
function grbi {
# Save current branch
BRANCH=$(git branch | grep \* | cut -d ' ' -f2)
# Save parent branch
PARENT=$(git_parent)
# Checkout parent & pull
git checkout ${PARENT}
git pull
echo "Rebasing on ${PARENT}"
# Back to previous branch
git checkout ${BRANCH}
git rebase --interactive ${PARENT}
}
function grbroot {
git rebase --interactive --autosquash --root
}
function ga {
git autofixup HEAD~$1
git rebase --interactive --autosquash HEAD~$1
}
function gam {
git autofixup master
git rebase --interactive --autosquash master
}
function ga {
git autofixup HEAD~$1
git rebase --interactive --autosquash HEAD~$1
function gai {
# Save parent branch
PARENT=$(git_parent)
echo "Rebasing with autofixup on ${PARENT}"
git autofixup ${PARENT}
git rebase --interactive --autosquash ${PARENT}
}
# ╔═╗┬┌┬┐ ╔═╗┌┬┐┌─┐┌┐┌┌┬┐