-
-
Save sonukapoor/3bd3268b948659d26540811c1491d5bb to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Place the below into the following file: ~/.config/fish/config.fish | |
# migrating from https://github.com/robbyrussell/oh-my-zsh/blob/master/plugins/git/git.plugin.zsh | |
# Aliases | |
alias g='git' | |
#compdef g=git | |
alias gst='git status' | |
#compdef _git gst=git-status | |
alias gd='git diff' | |
#compdef _git gd=git-diff | |
alias gdc='git diff --cached' | |
#compdef _git gdc=git-diff | |
alias gl='git pull' | |
#compdef _git gl=git-pull | |
alias gup='git pull --rebase' | |
#compdef _git gup=git-fetch | |
alias gp='git push' | |
#compdef _git gp=git-push | |
alias gd='git diff' | |
function gdv | |
git diff -w $argv | view - | |
end | |
#compdef _git gdv=git-diff | |
alias gc='git commit -v' | |
#compdef _git gc=git-commit | |
alias gc!='git commit -v --amend' | |
#compdef _git gc!=git-commit | |
alias gca='git commit -v -a' | |
#compdef _git gc=git-commit | |
alias gca!='git commit -v -a --amend' | |
#compdef _git gca!=git-commit | |
alias gcmsg='git commit -m' | |
#compdef _git gcmsg=git-commit | |
alias gco='git checkout' | |
#compdef _git gco=git-checkout | |
alias gcm='git checkout master' | |
alias gr='git remote' | |
#compdef _git gr=git-remote | |
alias grv='git remote -v' | |
#compdef _git grv=git-remote | |
alias grmv='git remote rename' | |
#compdef _git grmv=git-remote | |
alias grrm='git remote remove' | |
#compdef _git grrm=git-remote | |
alias grset='git remote set-url' | |
#compdef _git grset=git-remote | |
alias grup='git remote update' | |
#compdef _git grset=git-remote | |
alias grbi='git rebase -i' | |
#compdef _git grbi=git-rebase | |
alias grbc='git rebase --continue' | |
#compdef _git grbc=git-rebase | |
alias grba='git rebase --abort' | |
#compdef _git grba=git-rebase | |
alias gb='git branch' | |
#compdef _git gb=git-branch | |
alias gba='git branch -a' | |
#compdef _git gba=git-branch | |
alias gcount='git shortlog -sn' | |
#compdef gcount=git | |
alias gcl='git config --list' | |
alias gcp='git cherry-pick' | |
#compdef _git gcp=git-cherry-pick | |
alias glg='git log --stat --max-count=10' | |
#compdef _git glg=git-log | |
alias glgg='git log --graph --max-count=10' | |
#compdef _git glgg=git-log | |
alias glgga='git log --graph --decorate --all' | |
#compdef _git glgga=git-log | |
alias glo='git log --oneline' | |
#compdef _git glo=git-log | |
alias gss='git status -s' | |
#compdef _git gss=git-status | |
alias ga='git add' | |
#compdef _git ga=git-add | |
alias gm='git merge' | |
#compdef _git gm=git-merge | |
alias grh='git reset HEAD' | |
alias grhh='git reset HEAD --hard' | |
alias gclean='git reset --hard; and git clean -dfx' | |
alias gwc='git whatchanged -p --abbrev-commit --pretty=medium' | |
#remove the gf alias | |
#alias gf='git ls-files | grep' | |
alias gpoat='git push origin --all; and git push origin --tags' | |
alias gmt='git mergetool --no-prompt' | |
#compdef _git gm=git-mergetool | |
alias gg='git gui citool' | |
alias gga='git gui citool --amend' | |
alias gk='gitk --all --branches' | |
alias gsts='git stash show --text' | |
alias gsta='git stash' | |
alias gstp='git stash pop' | |
alias gstd='git stash drop' | |
# Will cd into the top of the current repository | |
# or submodule. | |
alias grt='cd (git rev-parse --show-toplevel or echo ".")' | |
# Git and svn mix | |
alias git-svn-dcommit-push='git svn dcommit; and git push github master:svntrunk' | |
#compdef git-svn-dcommit-push=git | |
alias gsr='git svn rebase' | |
alias gsd='git svn dcommit' | |
# | |
# Will return the current branch name | |
# Usage example: git pull origin $(current_branch) | |
# | |
function current_branch | |
set ref (git symbolic-ref HEAD 2> /dev/null); or \ | |
set ref (git rev-parse --short HEAD 2> /dev/null); or return | |
echo ref | sed s-refs/heads-- | |
end | |
function current_repository | |
set ref (git symbolic-ref HEAD 2> /dev/null); or \ | |
set ref (git rev-parse --short HEAD 2> /dev/null); or return | |
echo (git remote -v | cut -d':' -f 2) | |
end | |
# these aliases take advantage of the previous function | |
alias ggpull='git pull origin (current_branch)' | |
#compdef ggpull=git | |
alias ggpur='git pull --rebase origin (current_branch)' | |
#compdef ggpur=git | |
alias ggpush='git push origin (current_branch)' | |
#compdef ggpush=git | |
alias ggpnp='git pull origin (current_branch); and git push origin (current_branch)' | |
#compdef ggpnp=git | |
# Pretty log messages | |
function _git_log_prettily | |
if ! [ -z $1 ]; then | |
git log --pretty=$1 | |
end | |
end | |
alias glp="_git_log_prettily" | |
#compdef _git glp=git-log | |
# Work In Progress (wip) | |
# These features allow to pause a branch development and switch to another one (wip) | |
# When you want to go back to work, just unwip it | |
# | |
# This function return a warning if the current branch is a wip | |
function work_in_progress | |
if git log -n 1 | grep -q -c wip; then | |
echo "WIP!!" | |
end | |
end | |
# these alias commit and uncomit wip branches | |
alias gwip='git add -A; git ls-files --deleted -z | xargs -0 git rm; git commit -m "wip"' | |
alias gunwip='git log -n 1 | grep -q -c wip; and git reset HEAD~1' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment