You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

63 lines
2.0 KiB

#!/bin/bash
function heck_git_ui {
# git basic
alias gf='git fetch --all --tags'
alias gp='git pull'
alias gpush='git push'
alias gpushf='git push --force'
alias gpusht='gpush; gpush --tags'
alias gpushtf='gpushf;gpushf --tags'
alias gs='git status --long'
alias gd='git diff'
alias gt='git tag'
alias gst='git for-each-ref --sort=creatordate --format "%(objectname) %(refname)" refs/tags'
alias gb='git branch'
alias gsb='git branch -vv --all'
alias gl='git log --graph --date=iso --topo-order --source --oneline'
alias gla='gl --all'
alias gll='git log --graph --date=iso --stat --topo-order --source'
alias glla='gll --all'
alias gm='git merge --no-ff'
alias grb='git rebase'
alias gco='git checkout'
alias gc='git commit'
alias gup='git pull --rebase --autostash -v'
alias gcp='git cherry-pick'
alias gclean='git clean -dxf'
# stats
alias gstats='git shortlog -sne'
function gstatslines() {
echo -e "this usually takes a while.\nSo, go grab a coffee... or two... or three..."
git ls-files | while read f; do {
git blame -wMCC --line-porcelain $f | grep -I '^author '
}; done | sort -f | uniq -ic | sort -n --reverse
}
function gstats_libpEpAdapter_heck() {
echo "libpEpAdapter: corrected lines of code for author heck, because he commited the sqlite3 amalgamation..."
echo "$(gstatslines | grep 'author heck' | cut -f1 -d' ') - $(cat src/sqlite3.c src/internal/sqlite3.h | wc -l)" | bc
}
alias gstatsall='gstats;gstatslines'
# submodule
alias gsubpush='git submodule foreach "git push || :"'
alias gsubinit='git submodule update --init'
function heck_git_ui_deprecated {
# --all / -u
alias gpau='gpush --all -u'
alias gpu='gpush -u'
alias gpauf='gpushf --all -u'
alias gpuf='gpushf -u'
# with tags
alias gpaut='gpush --all -u;gpusht'
alias gput='gpush -u;gpusht'
alias gpauft='gpushf --all -u;gpushtf'
alias gpuft='gpushf -u;gpushtf'
}
}
heck_git_ui