X-Git-Url: https://git.rmz.io/dotfiles.git/blobdiff_plain/b55d69396b587288c7e654035190d9e62fa70b71..refs/heads/lazyvim:/zsh/aliases/git.zsh diff --git a/zsh/aliases/git.zsh b/zsh/aliases/git.zsh index 154aa6d..f46ed91 100644 --- a/zsh/aliases/git.zsh +++ b/zsh/aliases/git.zsh @@ -1,77 +1,96 @@ # Aliases alias g='git' -compdef g=git + alias gst='git status' -compdef _git gst=git-status +alias gsts='git status -s' + 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 gpf='git push --force-with-lease' + alias gd='git diff' -gdv() { git diff -w "$@" | view - } -compdef _git gdv=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' -compdef _git gc=git-commit +alias gcs='git commit -v --squash' +alias gcf='git commit -v --fixup' alias gca='git commit -v -a' -compdef _git gca=git-commit +alias gcaf='git commit -v -a --fixup' + alias gco='git checkout' -compdef _git 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' -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 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 gb='git --no-pager branch -vv' +alias gbv='git --no-pager branch -vv' +alias gba='git --no-pager branch -a' +alias gbm='git --no-pager branch -vv --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 gwl='git worktree list' +function gwa { git worktree add wt/$1 $1 } +compdef _git gwa='_git_commits' + alias gcl='git config --list' alias gcp='git cherry-pick' -compdef _git gcp=git-cherry-pick -alias glg='git log --stat --max-count=5' -compdef _git glg=git-log -alias glgg='git log --graph --max-count=5' -compdef _git glgg=git-log -alias glgga='git log --graph --decorate --all' -compdef _git glgga=git-log -alias gss='git status -s' -compdef _git gss=git-status + +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' -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 gwc='git whatchanged -p --abbrev-commit --pretty=medium' + alias gf='git ls-files | grep' + alias gpoat='git push origin --all && git push origin --tags' -# Will cd into the top of the current repository +# cd into the top of the current repository # or submodule. -alias grt='cd $(git rev-parse --show-toplevel || echo ".")' +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' -compdef git-svn-dcommit-push=git alias gsr='git svn rebase' alias gsd='git svn dcommit' -# -# Will return the current branch name + +# 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 @@ -86,8 +105,5 @@ function current_repository() { # these aliases take advantage of the previous function alias ggpull='git pull origin $(current_branch)' -compdef ggpull=git alias ggpush='git push origin $(current_branch)' -compdef ggpush=git alias ggpnp='git pull origin $(current_branch) && git push origin $(current_branch)' -compdef ggpnp=git