-
-
Save freewind/773c3324b5288ff636af to your computer and use it in GitHub Desktop.
| # 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' |
Since this is the first result in google for "fish git aliases", I will leave here a fix (that worked for me at least) for the current_branch function, which in turn should also fix ggpush:
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 -e 's|^refs/heads/||'
end
What is
#compdef ...?
It's zsh's completions synax so I assume it's just being used as a description of what they started with.
new to fish, sorry, how to use that ?
new to fish, sorry, how to use that ?
use as you would use git in everyday life, but you can use aliases to avoid typing the entire command
ex: git add foo.bar
with alias: ga foo.ba
new to fish, sorry, how to use that ?
I'm putting the aliases I want to use in a config file, e.g. ~/.config/fish/conf.d/aliases.fish.
@rchampourlier can i put these aliases in a config file `~/.config/fish/conf.d/git_aliases.fish ??
@tarikwaleed did you try? AFAIK, you can put them in any .fish file in the ~/.config/fish/conf.d didrectory :)
@rchampourlier didn't tryied it yet, but planning to do so and put related aliases in a separate .fish file in ~/.config/fish/conf.d . I believe the'll work
fisher install jhillyerd/plugin-gitIt can work with fish-abbreviation-tips.
fisher install gazorby/fish-abbreviation-tips
What is
#compdef ...?