# Aliases alias g='git' alias gst='git status' alias gsts='git status -s' alias gl='git pull' alias gup='git pull --rebase' alias gp='git push' alias gpf='git push --force-with-lease' alias gd='git diff' alias gdc='git diff --cached' function gdm { gd "${1:-origin}".. } compdef _git gdm=git-diff function gdf { gd $(git merge-base --fork-point $1) } compdef _git gdf=git-diff alias gc='git commit -v' alias gcs='git commit -v --squash' alias gcf='git commit -v --fixup' alias gca='git commit -v -a' alias gcaf='git commit -v -a --fixup' alias gco='git checkout' alias gcm='git checkout master' alias gs='git stash save' alias gsa='git stash apply' alias gsp='git stash pop' alias gsd='git stash drop' alias gsl='git --no-pager log -g --oneline --pretty=tformat:"%gd %Cblue%cd %C(auto)%h %s" stash@{0} --date=short' alias gss='git stash show --patch' alias gr='git remote' alias grv='git remote -v' alias grmv='git remote rename' alias grrm='git remote remove' alias grset='git remote set-url' alias grup='git remote update' alias gb='git --no-pager branch' alias gbv='git --no-pager branch -vv' alias gba='git --no-pager branch -a' alias gbm='git --no-pager branch --merged' alias gbdm='git branch --merged | grep -ve "\*" -e "\+" -e "master" | xargs git branch -d' alias gsu='git branch --set-upstream-to' alias gsum='git branch --set-upstream-to=origin/HEAD' alias gcl='git config --list' alias gcp='git cherry-pick' alias gcount='git shortlog -sn' alias glg='git --no-pager log --graph --max-count=20 --format="%Cblue%cd %C(auto)%h%d %s" --date=short' alias glg2='git --no-pager log --graph --max-count=20 --date=short --format="%C(blue)%cd %C(auto)%h %C(dim cyan)%an %C(bold green)(%ar)%C(auto)%-d%n %s"' function glm { glg "${1:-origin}".. } compdef _git glm=git-log alias glgl='git log --graph --cherry-mark --boundary --pretty=tformat:"%Cblue%cd %C(auto)%h%d %s" --date=short' alias glgg='git log --stat --graph --max-count=20 --decorate' alias glgga='git log --stat --graph --decorate --all' alias grl='git --no-pager reflog --max-count=20' alias ga='git add' alias gm='git merge' alias grh='git reset HEAD' alias grhh='git reset HEAD --hard' alias gwc='git whatchanged -p --abbrev-commit --pretty=medium' alias gf='git ls-files | grep' alias gpoat='git push origin --all && git push origin --tags' # cd into the top of the current repository # or submodule. alias cdr='cd $(git rev-parse --show-toplevel || echo ".")' # Git and svn mix alias git-svn-dcommit-push='git svn dcommit && git push github master:svntrunk' alias gsr='git svn rebase' alias gsd='git svn dcommit' # return the current branch name # Usage example: git pull origin $(current_branch) function current_branch() { ref=$(git symbolic-ref HEAD 2> /dev/null) || \ ref=$(git rev-parse --short HEAD 2> /dev/null) || return echo ${ref#refs/heads/} } function current_repository() { ref=$(git symbolic-ref HEAD 2> /dev/null) || \ ref=$(git rev-parse --short HEAD 2> /dev/null) || return echo $(git remote -v | cut -d':' -f 2) } # these aliases take advantage of the previous function alias ggpull='git pull origin $(current_branch)' alias ggpush='git push origin $(current_branch)' alias ggpnp='git pull origin $(current_branch) && git push origin $(current_branch)'