-
-
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-git
It can work with fish-abbreviation-tips.
fisher install gazorby/fish-abbreviation-tips
What is
#compdef ...
?