Marty Oehme
e9feecc440
Fixed git stash alias (gsta) not correctly detecting zsh shell for git version guessing. Set default options to automatically rebase on pull, automatically prune on fetch, and automatically stash and squash on rebasing. Also made git diff highlight moved code.
65 lines
1.5 KiB
Bash
65 lines
1.5 KiB
Bash
#!/usr/bin/env sh
|
|
|
|
# git alias
|
|
if exist git; then
|
|
alias g='git'
|
|
|
|
alias ga='git add'
|
|
alias gaa='git add --all'
|
|
alias gai='git add -i'
|
|
alias gb='git branch'
|
|
alias gbd='git branch -d'
|
|
|
|
alias gc='git commit -v'
|
|
alias gc!='git commit -v --amend'
|
|
alias gcn!='git commit -v --no-edit --amend'
|
|
|
|
alias gcm='git checkout master'
|
|
alias gcd='git checkout develop'
|
|
alias gcb='git checkout -b'
|
|
alias gco='git checkout'
|
|
|
|
alias gd='git diff'
|
|
alias gds='git diff --staged'
|
|
|
|
alias gi='git ignore'
|
|
|
|
alias glog='git log --stat'
|
|
alias glg='git log --oneline --decorate --graph'
|
|
alias glga='git log --oneline --decorate --graph --remotes --all'
|
|
alias glgp='git log --stat -p'
|
|
|
|
alias gf='git fetch'
|
|
alias gl='git pull'
|
|
|
|
alias gpn='git push --dry-run'
|
|
alias gp='git push'
|
|
alias gpf!='git push --force'
|
|
alias gpm='git pushmerge'
|
|
|
|
alias grv='git remote -v'
|
|
|
|
alias grs='git restore --staged'
|
|
alias grs!='git restore'
|
|
|
|
alias grbi='git rebase -i'
|
|
alias grbc='git rebase --continue'
|
|
|
|
alias gst='git status'
|
|
|
|
# if git is at least version 2.13, we can use git stash push
|
|
# in shells other than zsh, simply fall back to save
|
|
case "$(ps -cp "$$" -o command="")" in
|
|
*zsh*)
|
|
autoload -Uz is-at-least
|
|
if is-at-least 2.13 "$(git --version 2>/dev/null | awk '{print $3}')"; then
|
|
alias gsta='git stash push'
|
|
else
|
|
alias gsta='git stash save'
|
|
fi
|
|
;;
|
|
*) alias gsta='git stash save' ;;
|
|
esac
|
|
alias gstp='git stash pop'
|
|
alias gstl='git stash list'
|
|
fi
|