zsh/.zsh/aliases/git.zsh

# zsh/.zsh/aliases/git.zsh

alias g='git'

# status / diff / log
alias gs='git status -sb'
alias gd='git diff'
alias gds='git diff --staged'
alias gdw='git diff --word-diff=color'
alias gl='git log --graph --decorate --oneline -n 20'
alias gll='git log --graph --decorate --oneline'
alias glp='git log --patch'
alias gla='git log --graph --decorate --oneline --all'

# add / commit
alias ga='git add'
alias gaa='git add -A'
alias gc='git commit -v'
alias gcm='git commit -v -m'
alias gca='git commit -v --amend'
alias gcan='git commit -v --amend --no-edit'
alias gcf='git commit --fixup'

# branches
alias gb='git branch'
alias gbD='git branch -D'
alias gbl='git branch --sort=-committerdate'
alias gco='git switch'
alias gcb='git switch -c'

# remotes / push / pull / fetch
alias gf='git fetch --prune'
alias gp='git push'
alias gpf='git push --force-with-lease'
alias gpu='git push -u origin HEAD'
alias gpl='git pull --rebase'

# stash
alias gst='git stash'
alias gstp='git stash pop'
alias gsta='git stash apply'
alias gstl='git stash list'

# rebase / reset
alias grb='git rebase'
alias grbi='git rebase -i'
alias grbc='git rebase --continue'
alias grba='git rebase --abort'
alias grh='git reset HEAD'
alias grhh='git reset --hard HEAD'

# worktree
alias gwa='git worktree add'
alias gwl='git worktree list'
alias gwr='git worktree remove'

# show / cherry-pick
alias gsh='git show'
alias gcp='git cherry-pick'
alias gcpc='git cherry-pick --continue'
alias gcpa='git cherry-pick --abort'