2015-12-15 00:12:17 -05:00
|
|
|
#
|
2015-12-20 20:41:54 -05:00
|
|
|
# Git aliases.
|
2015-12-15 00:12:17 -05:00
|
|
|
#
|
|
|
|
|
2015-12-20 20:41:54 -05:00
|
|
|
#
|
|
|
|
# Settings
|
|
|
|
#
|
|
|
|
|
2019-01-11 11:14:26 -05:00
|
|
|
# Log colour scheme has bold yellow commit hash, bold blue author, cyan date, auto ref names
|
2017-11-24 17:02:29 -05:00
|
|
|
# See https://git-scm.com/docs/pretty-formats
|
2019-01-21 16:27:29 -05:00
|
|
|
_git_log_medium_format='%C(bold)Commit: %C(yellow)%H%C(auto)%d%n%C(bold)Author: %C(blue)%an <%ae>%n%C(bold)Date: %C(no-bold cyan)%ai (%ar)%C(reset)%n%+B'
|
|
|
|
_git_log_oneline_format='%C(bold yellow)%h%C(reset) %s%C(auto)%d%C(reset)'
|
|
|
|
_git_log_oneline_medium_format='%C(bold yellow)%h%C(reset) %<|(60,trunc)%s %C(bold blue)<%an> %C(no-bold cyan)(%ar)%C(auto)%d%C(reset)'
|
2015-12-20 20:41:54 -05:00
|
|
|
|
|
|
|
#
|
|
|
|
# Aliases
|
|
|
|
#
|
|
|
|
|
2019-01-21 16:27:29 -05:00
|
|
|
local gprefix
|
|
|
|
zstyle -s ':zim:git' aliases-prefix 'gprefix' || gprefix=g
|
|
|
|
|
2015-12-20 20:41:54 -05:00
|
|
|
# Git
|
2019-01-21 16:27:29 -05:00
|
|
|
alias ${gprefix}='git'
|
2015-12-20 20:41:54 -05:00
|
|
|
|
|
|
|
# Branch (b)
|
2019-01-21 16:27:29 -05:00
|
|
|
alias ${gprefix}b='git branch'
|
|
|
|
alias ${gprefix}bc='git checkout -b'
|
|
|
|
alias ${gprefix}bl='git branch -vv'
|
|
|
|
alias ${gprefix}bL='git branch --all -vv'
|
|
|
|
alias ${gprefix}bm='git branch --move'
|
|
|
|
alias ${gprefix}bM='git branch --move --force'
|
|
|
|
alias ${gprefix}bs='git show-branch'
|
|
|
|
alias ${gprefix}bS='git show-branch --all'
|
|
|
|
alias ${gprefix}bx='git-branch-delete-interactive'
|
|
|
|
alias ${gprefix}bX='git-branch-delete-interactive --force'
|
2015-12-20 20:41:54 -05:00
|
|
|
|
|
|
|
# Commit (c)
|
2019-01-21 16:27:29 -05:00
|
|
|
alias ${gprefix}c='git commit --verbose'
|
|
|
|
alias ${gprefix}ca='git commit --verbose --all'
|
|
|
|
alias ${gprefix}cm='git commit --message'
|
|
|
|
alias ${gprefix}co='git checkout'
|
|
|
|
alias ${gprefix}cO='git checkout --patch'
|
|
|
|
alias ${gprefix}cf='git commit --amend --reuse-message HEAD'
|
|
|
|
alias ${gprefix}cF='git commit --verbose --amend'
|
|
|
|
alias ${gprefix}cp='git cherry-pick --ff'
|
|
|
|
alias ${gprefix}cP='git cherry-pick --no-commit'
|
|
|
|
alias ${gprefix}cr='git revert'
|
|
|
|
alias ${gprefix}cR='git reset "HEAD^"'
|
|
|
|
alias ${gprefix}cs='git show --pretty=format:"${_git_log_medium_format}"'
|
|
|
|
alias ${gprefix}cS='git commit -S'
|
|
|
|
alias ${gprefix}cv='git verify-commit'
|
2015-12-20 20:41:54 -05:00
|
|
|
|
|
|
|
# Conflict (C)
|
2019-01-21 16:27:29 -05:00
|
|
|
alias ${gprefix}Cl='git --no-pager diff --diff-filter=U --name-only'
|
|
|
|
alias ${gprefix}Ca='git add $(gCl)'
|
|
|
|
alias ${gprefix}Ce='git mergetool $(gCl)'
|
|
|
|
alias ${gprefix}Co='git checkout --ours --'
|
|
|
|
alias ${gprefix}CO='gCo $(gCl)'
|
|
|
|
alias ${gprefix}Ct='git checkout --theirs --'
|
|
|
|
alias ${gprefix}CT='gCt $(gCl)'
|
2015-12-20 20:41:54 -05:00
|
|
|
|
|
|
|
# Data (d)
|
2019-01-21 16:27:29 -05:00
|
|
|
alias ${gprefix}d='git ls-files'
|
|
|
|
alias ${gprefix}dc='git ls-files --cached'
|
|
|
|
alias ${gprefix}dx='git ls-files --deleted'
|
|
|
|
alias ${gprefix}dm='git ls-files --modified'
|
|
|
|
alias ${gprefix}du='git ls-files --other --exclude-standard'
|
|
|
|
alias ${gprefix}dk='git ls-files --killed'
|
|
|
|
alias ${gprefix}di='git status --porcelain --short --ignored | sed -n "s/^!! //p"'
|
2015-12-20 20:41:54 -05:00
|
|
|
|
|
|
|
# Fetch (f)
|
2019-01-21 16:27:29 -05:00
|
|
|
alias ${gprefix}f='git fetch'
|
|
|
|
alias ${gprefix}fc='git clone'
|
|
|
|
alias ${gprefix}fm='git pull'
|
|
|
|
alias ${gprefix}fr='git pull --rebase'
|
|
|
|
alias ${gprefix}fu='git fetch --all --prune && git merge --ff-only @\{u\}'
|
2015-12-20 20:41:54 -05:00
|
|
|
|
|
|
|
# Grep (g)
|
2019-01-21 16:27:29 -05:00
|
|
|
alias ${gprefix}g='git grep'
|
|
|
|
alias ${gprefix}gi='git grep --ignore-case'
|
|
|
|
alias ${gprefix}gl='git grep --files-with-matches'
|
|
|
|
alias ${gprefix}gL='git grep --files-without-match'
|
|
|
|
alias ${gprefix}gv='git grep --invert-match'
|
|
|
|
alias ${gprefix}gw='git grep --word-regexp'
|
2015-12-20 20:41:54 -05:00
|
|
|
|
|
|
|
# Index (i)
|
2019-01-21 16:27:29 -05:00
|
|
|
alias ${gprefix}ia='git add'
|
|
|
|
alias ${gprefix}iA='git add --patch'
|
|
|
|
alias ${gprefix}iu='git add --update'
|
|
|
|
alias ${gprefix}id='git diff --no-ext-diff --cached'
|
|
|
|
alias ${gprefix}iD='git diff --no-ext-diff --cached --word-diff'
|
|
|
|
alias ${gprefix}ir='git reset'
|
|
|
|
alias ${gprefix}iR='git reset --patch'
|
|
|
|
alias ${gprefix}ix='git rm --cached -r'
|
|
|
|
alias ${gprefix}iX='git rm --cached -rf'
|
2015-12-20 20:41:54 -05:00
|
|
|
|
|
|
|
# Log (l)
|
2019-01-21 16:27:29 -05:00
|
|
|
alias ${gprefix}l='git log --topo-order --pretty=format:"${_git_log_medium_format}"'
|
|
|
|
alias ${gprefix}ls='git log --topo-order --stat --pretty=format:"${_git_log_medium_format}"'
|
|
|
|
alias ${gprefix}ld='git log --topo-order --stat --patch --full-diff --pretty=format:"${_git_log_medium_format}"'
|
|
|
|
alias ${gprefix}lo='git log --topo-order --pretty=format:"${_git_log_oneline_format}"'
|
|
|
|
alias ${gprefix}lO='git log --topo-order --pretty=format:"${_git_log_oneline_medium_format}"'
|
|
|
|
alias ${gprefix}lg='git log --topo-order --all --graph --pretty=format:"${_git_log_oneline_format}"'
|
|
|
|
alias ${gprefix}lG='git log --topo-order --all --graph --pretty=format:"${_git_log_oneline_medium_format}"'
|
|
|
|
alias ${gprefix}lv='git log --topo-order --show-signature --pretty=format:"${_git_log_medium_format}"'
|
|
|
|
alias ${gprefix}lc='git shortlog --summary --numbered'
|
|
|
|
alias ${gprefix}lr='git reflog'
|
2015-12-20 20:41:54 -05:00
|
|
|
|
|
|
|
# Merge (m)
|
2019-01-21 16:27:29 -05:00
|
|
|
alias ${gprefix}m='git merge'
|
|
|
|
alias ${gprefix}mC='git merge --no-commit'
|
|
|
|
alias ${gprefix}mF='git merge --no-ff'
|
|
|
|
alias ${gprefix}ma='git merge --abort'
|
|
|
|
alias ${gprefix}mt='git mergetool'
|
2015-12-20 20:41:54 -05:00
|
|
|
|
|
|
|
# Push (p)
|
2019-01-21 16:27:29 -05:00
|
|
|
alias ${gprefix}p='git push'
|
|
|
|
alias ${gprefix}pf='git push --force-with-lease'
|
|
|
|
alias ${gprefix}pF='git push --force'
|
|
|
|
alias ${gprefix}pa='git push --all'
|
|
|
|
alias ${gprefix}pA='git push --all && git push --tags'
|
|
|
|
alias ${gprefix}pt='git push --tags'
|
|
|
|
alias ${gprefix}pc='git push --set-upstream origin "$(git-branch-current 2> /dev/null)"'
|
|
|
|
alias ${gprefix}pp='git pull origin "$(git-branch-current 2> /dev/null)" && git push origin "$(git-branch-current 2> /dev/null)"'
|
2015-12-20 20:41:54 -05:00
|
|
|
|
|
|
|
# Rebase (r)
|
2019-01-21 16:27:29 -05:00
|
|
|
alias ${gprefix}r='git rebase'
|
|
|
|
alias ${gprefix}ra='git rebase --abort'
|
|
|
|
alias ${gprefix}rc='git rebase --continue'
|
|
|
|
alias ${gprefix}ri='git rebase --interactive'
|
|
|
|
alias ${gprefix}rs='git rebase --skip'
|
2015-12-20 20:41:54 -05:00
|
|
|
|
|
|
|
# Remote (R)
|
2019-01-21 16:27:29 -05:00
|
|
|
alias ${gprefix}R='git remote'
|
|
|
|
alias ${gprefix}Rl='git remote --verbose'
|
|
|
|
alias ${gprefix}Ra='git remote add'
|
|
|
|
alias ${gprefix}Rx='git remote rm'
|
|
|
|
alias ${gprefix}Rm='git remote rename'
|
|
|
|
alias ${gprefix}Ru='git remote update'
|
|
|
|
alias ${gprefix}Rp='git remote prune'
|
|
|
|
alias ${gprefix}Rs='git remote show'
|
2015-12-20 20:41:54 -05:00
|
|
|
|
|
|
|
# Stash (s)
|
2019-01-21 16:27:29 -05:00
|
|
|
alias ${gprefix}s='git stash'
|
|
|
|
alias ${gprefix}sa='git stash apply'
|
|
|
|
alias ${gprefix}sx='git stash drop'
|
|
|
|
alias ${gprefix}sX='git-stash-clear-interactive'
|
|
|
|
alias ${gprefix}sl='git stash list'
|
|
|
|
alias ${gprefix}sd='git stash show --patch --stat'
|
|
|
|
alias ${gprefix}sp='git stash pop'
|
|
|
|
alias ${gprefix}sr='git-stash-recover'
|
|
|
|
alias ${gprefix}ss='git stash save --include-untracked'
|
|
|
|
alias ${gprefix}sS='git stash save --patch --no-keep-index'
|
|
|
|
alias ${gprefix}sw='git stash save --include-untracked --keep-index'
|
|
|
|
alias ${gprefix}su='git stash show --patch | git apply --reverse'
|
2015-12-20 20:41:54 -05:00
|
|
|
|
|
|
|
# Submodule (S)
|
2019-01-21 16:27:29 -05:00
|
|
|
alias ${gprefix}S='git submodule'
|
|
|
|
alias ${gprefix}Sa='git submodule add'
|
|
|
|
alias ${gprefix}Sf='git submodule foreach'
|
|
|
|
alias ${gprefix}Si='git submodule init'
|
|
|
|
alias ${gprefix}SI='git submodule update --init --recursive'
|
|
|
|
alias ${gprefix}Sl='git submodule status'
|
|
|
|
alias ${gprefix}Sm='git-submodule-move'
|
|
|
|
alias ${gprefix}Ss='git submodule sync'
|
|
|
|
alias ${gprefix}Su='git submodule foreach git pull origin master'
|
|
|
|
alias ${gprefix}Sx='git-submodule-remove'
|
2015-12-20 20:41:54 -05:00
|
|
|
|
|
|
|
# Tag (t)
|
2019-01-21 16:27:29 -05:00
|
|
|
alias ${gprefix}t='git tag'
|
|
|
|
alias ${gprefix}ts='git tag --sign'
|
|
|
|
alias ${gprefix}tv='git verify-tag'
|
|
|
|
alias ${gprefix}tx='git tag --delete'
|
2015-12-20 20:41:54 -05:00
|
|
|
|
[git] Review aliases and README.md
This complements the changes done in the last commit, and also fixes the
`glg` output, and removes the now unnecessary `--date=relative`
parameter from `glG`.
Although I insisted on the `--long-option` format on 8669a4f, I think
`rm -rf` is pretty common and recognizable, so revert to that.
Add missing aliases to README.md, and improve description of existing
ones. The main improvement is trying to be more concise, so instead of
repeating "records changes to the repository" multiple times, simply say
"commits", for example. Also try to use words that match the alias
letters, so for "gcs" say "shows" instead of "displays", for example.
2018-01-11 11:30:20 -05:00
|
|
|
# Working tree (w)
|
2019-01-21 16:27:29 -05:00
|
|
|
alias ${gprefix}ws='git status --short'
|
|
|
|
alias ${gprefix}wS='git status'
|
|
|
|
alias ${gprefix}wd='git diff --no-ext-diff'
|
|
|
|
alias ${gprefix}wD='git diff --no-ext-diff --word-diff'
|
|
|
|
alias ${gprefix}wr='git reset --soft'
|
|
|
|
alias ${gprefix}wR='git reset --hard'
|
|
|
|
alias ${gprefix}wc='git clean --dry-run'
|
|
|
|
alias ${gprefix}wC='git clean -d --force'
|
|
|
|
alias ${gprefix}wx='git rm -r'
|
|
|
|
alias ${gprefix}wX='git rm -rf'
|
2015-12-15 00:12:17 -05:00
|
|
|
|
2015-12-20 20:41:54 -05:00
|
|
|
# Misc
|
2019-01-21 16:27:29 -05:00
|
|
|
alias ${gprefix}..='cd "$(git-root || print .)"'
|