Merge pull request #1743 from georgettica/georgettica/sort-git-aliases
refactor(aliases): sortpull/1733/head
commit
bac50413f1
|
|
@ -1,137 +1,195 @@
|
|||
# shellcheck shell=bash
|
||||
cite 'about-alias'
|
||||
about-alias 'common git abbreviations'
|
||||
|
||||
# Aliases
|
||||
alias gcl='git clone'
|
||||
alias ga='git add'
|
||||
alias grm='git rm'
|
||||
alias gap='git add -p'
|
||||
alias gall='git add -A'
|
||||
alias gf='git fetch --all --prune'
|
||||
alias gft='git fetch --all --prune --tags'
|
||||
alias gfv='git fetch --all --prune --verbose'
|
||||
alias gftv='git fetch --all --prune --tags --verbose'
|
||||
alias gus='git reset HEAD'
|
||||
alias gpristine='git reset --hard && git clean -dfx'
|
||||
alias gclean='git clean -fd'
|
||||
alias gm="git merge"
|
||||
alias gmv='git mv'
|
||||
alias g='git'
|
||||
alias get='git'
|
||||
alias gs='git status'
|
||||
alias gss='git status -s'
|
||||
alias gsu='git submodule update --init --recursive'
|
||||
alias gl='git pull'
|
||||
alias gpl='git pull'
|
||||
alias glum='git pull upstream master'
|
||||
alias gpr='git pull --rebase'
|
||||
alias gpp='git pull && git push'
|
||||
alias gup='git fetch && git rebase'
|
||||
alias gp='git push'
|
||||
alias gpd='git push --delete'
|
||||
alias gpo='git push origin HEAD'
|
||||
alias gpu='git push --set-upstream'
|
||||
alias gpuo='git push --set-upstream origin'
|
||||
alias gpuoc='git push --set-upstream origin $(git symbolic-ref --short HEAD)'
|
||||
alias gpom='git push origin master'
|
||||
alias gr='git remote'
|
||||
alias grv='git remote -v'
|
||||
alias gra='git remote add'
|
||||
alias grb='git rebase'
|
||||
alias grm='git rebase master'
|
||||
alias grmi='git rebase master -i'
|
||||
|
||||
# add
|
||||
alias ga='git add'
|
||||
alias gall='git add -A'
|
||||
alias gap='git add -p'
|
||||
|
||||
# branch
|
||||
alias gb='git branch'
|
||||
alias gbD='git branch -D'
|
||||
alias gba='git branch -a'
|
||||
alias gbd='git branch -d'
|
||||
alias gbm='git branch -m'
|
||||
alias gbt='git branch --track'
|
||||
alias gdel='git branch -D'
|
||||
|
||||
# for-each-ref
|
||||
alias gbc='git for-each-ref --format="%(authorname) %09 %(if)%(HEAD)%(then)*%(else)%(refname:short)%(end) %09 %(creatordate)" refs/remotes/ --sort=authorname DESC' # FROM https://stackoverflow.com/a/58623139/10362396
|
||||
|
||||
# commit
|
||||
alias gc='git commit -v'
|
||||
alias gca='git commit -v -a'
|
||||
alias gcaa='git commit -a --amend -C HEAD' # Add uncommitted and unstaged changes to the last commit
|
||||
alias gcam='git commit -v -am'
|
||||
alias gcamd='git commit --amend'
|
||||
alias gcm='git commit -v -m'
|
||||
alias gci='git commit --interactive'
|
||||
alias gcsam='git commit -S -am'
|
||||
|
||||
# checkout
|
||||
alias gcb='git checkout -b'
|
||||
alias gco='git checkout'
|
||||
alias gcob='git checkout -b'
|
||||
alias gcobu='git checkout -b ${USER}/'
|
||||
alias gcom='git checkout master'
|
||||
alias gcpd='git checkout master; git pull; git branch -D'
|
||||
alias gct='git checkout --track'
|
||||
|
||||
# clone
|
||||
alias gcl='git clone'
|
||||
|
||||
# clean
|
||||
alias gclean='git clean -fd'
|
||||
|
||||
# cherry-pick
|
||||
alias gcp='git cherry-pick'
|
||||
alias gcpx='git cherry-pick -x'
|
||||
|
||||
# diff
|
||||
alias gd='git diff'
|
||||
alias gds='git diff --staged'
|
||||
alias gdt='git difftool'
|
||||
alias gdv='git diff -w "$@" | vim -R -'
|
||||
alias gc='git commit -v'
|
||||
alias gca='git commit -v -a'
|
||||
alias gcm='git commit -v -m'
|
||||
alias gcam="git commit -v -am"
|
||||
alias gci='git commit --interactive'
|
||||
alias gcamd='git commit --amend'
|
||||
alias gb='git branch'
|
||||
alias gba='git branch -a'
|
||||
# FROM https://stackoverflow.com/a/58623139/10362396
|
||||
alias gbc='git for-each-ref --format="%(authorname) %09 %(if)%(HEAD)%(then)*%(else)%(refname:short)%(end) %09 %(creatordate)" refs/remotes/ --sort=authorname DESC'
|
||||
alias gbt='git branch --track'
|
||||
alias gbm='git branch -m'
|
||||
alias gbd='git branch -d'
|
||||
alias gbD='git branch -D'
|
||||
alias gcount='git shortlog -sn'
|
||||
alias gcp='git cherry-pick'
|
||||
alias gcpx='git cherry-pick -x'
|
||||
alias gco='git checkout'
|
||||
alias gcom='git checkout master'
|
||||
alias gcb='git checkout -b'
|
||||
alias gcob='git checkout -b'
|
||||
alias gcobu='git checkout -b ${USER}/'
|
||||
alias gct='git checkout --track'
|
||||
alias gcpd='git checkout master; git pull; git branch -D'
|
||||
alias gexport='git archive --format zip --output'
|
||||
alias gdel='git branch -D'
|
||||
alias gmu='git fetch origin -v; git fetch upstream -v; git merge upstream/master'
|
||||
alias gll='git log --graph --pretty=oneline --abbrev-commit'
|
||||
alias gg="git log --graph --pretty=format:'%C(bold)%h%Creset%C(magenta)%d%Creset %s %C(yellow)<%an> %C(cyan)(%cr)%Creset' --abbrev-commit --date=relative"
|
||||
alias ggf="git log --graph --date=short --pretty=format:'%C(auto)%h %Cgreen%an%Creset %Cblue%cd%Creset %C(auto)%d %s'"
|
||||
alias ggs="gg --stat"
|
||||
alias gsh="git show"
|
||||
alias gsl="git shortlog -sn"
|
||||
alias gwc="git whatchanged"
|
||||
alias gt="git tag"
|
||||
alias gta="git tag -a"
|
||||
alias gtd="git tag -d"
|
||||
alias gtl="git tag -l"
|
||||
alias gpatch="git format-patch -1"
|
||||
# From http://blogs.atlassian.com/2014/10/advanced-git-aliases/
|
||||
# Show commits since last pull
|
||||
alias gnew="git log HEAD@{1}..HEAD@{0}"
|
||||
# Add uncommitted and unstaged changes to the last commit
|
||||
alias gcaa="git commit -a --amend -C HEAD"
|
||||
# Rebase with latest remote master
|
||||
alias gprom="git fetch origin master && git rebase origin/master && git update-ref refs/heads/master origin/master"
|
||||
alias gpf="git push --force"
|
||||
alias gpunch="git push --force-with-lease"
|
||||
alias ggui="git gui"
|
||||
alias gcsam="git commit -S -am"
|
||||
# Stash aliases
|
||||
alias gst="git stash"
|
||||
alias gstb="git stash branch"
|
||||
alias gstd="git stash drop"
|
||||
alias gstl="git stash list"
|
||||
# Push introduced in git v2.13.2
|
||||
alias gstpu="git stash push"
|
||||
alias gstpum="git stash push -m"
|
||||
# Save deprecated since git v2.16.0
|
||||
# - aliases now resolve to push
|
||||
alias gsts="git stash push"
|
||||
alias gstsm="git stash push -m"
|
||||
# Alias gstpo added for symmetry with gstpu (push)
|
||||
# - gstp remains as alias for pop due to long-standing usage
|
||||
alias gstpo="git stash pop"
|
||||
alias gstp="git stash pop"
|
||||
# Switch aliases - Requires git v2.23+
|
||||
alias gsw="git switch"
|
||||
alias gswm="git switch master"
|
||||
alias gswc="git switch --create"
|
||||
alias gswt="git switch --track"
|
||||
# Git home
|
||||
alias ghm='cd "$(git rev-parse --show-toplevel)"'
|
||||
if ! _command_exists gh; then
|
||||
alias gh='ghm'
|
||||
fi
|
||||
# Show untracked files
|
||||
alias gu='git ls-files . --exclude-standard --others'
|
||||
|
||||
# Git SVN
|
||||
alias gsr='git svn rebase'
|
||||
# archive
|
||||
alias gexport='git archive --format zip --output'
|
||||
|
||||
# fetch
|
||||
alias gf='git fetch --all --prune'
|
||||
alias gft='git fetch --all --prune --tags'
|
||||
alias gftv='git fetch --all --prune --tags --verbose'
|
||||
alias gfv='git fetch --all --prune --verbose'
|
||||
alias gmu='git fetch origin -v; git fetch upstream -v; git merge upstream/master'
|
||||
alias gup='git fetch && git rebase'
|
||||
|
||||
# log
|
||||
alias gg='git log --graph --pretty=format:'\''%C(bold)%h%Creset%C(magenta)%d%Creset %s %C(yellow)<%an> %C(cyan)(%cr)%Creset'\'' --abbrev-commit --date=relative'
|
||||
alias ggf='git log --graph --date=short --pretty=format:'\''%C(auto)%h %Cgreen%an%Creset %Cblue%cd%Creset %C(auto)%d %s'\'''
|
||||
alias ggs='gg --stat'
|
||||
alias gll='git log --graph --pretty=oneline --abbrev-commit'
|
||||
alias gnew='git log HEAD@{1}..HEAD@{0}' # Show commits since last pull, see http://blogs.atlassian.com/2014/10/advanced-git-aliases/
|
||||
alias gwc='git whatchanged'
|
||||
|
||||
# ls-files
|
||||
alias gu='git ls-files . --exclude-standard --others' # Show untracked files
|
||||
|
||||
# gui
|
||||
alias ggui='git gui'
|
||||
|
||||
# home
|
||||
alias ghm='cd '\''$(git rev-parse --show-toplevel)'\''' # Git home
|
||||
# appendage to ghm
|
||||
if ! _command_exists gh; then
|
||||
alias gh='ghm'
|
||||
fi
|
||||
|
||||
# merge
|
||||
alias gm='git merge'
|
||||
|
||||
# mv
|
||||
alias gmv='git mv'
|
||||
|
||||
# patch
|
||||
alias gpatch='git format-patch -1'
|
||||
|
||||
# push
|
||||
alias gp='git push'
|
||||
alias gpd='git push --delete'
|
||||
alias gpf='git push --force'
|
||||
alias gpo='git push origin HEAD'
|
||||
alias gpom='git push origin master'
|
||||
alias gpu='git push --set-upstream'
|
||||
alias gpunch='git push --force-with-lease'
|
||||
alias gpuo='git push --set-upstream origin'
|
||||
alias gpuoc='git push --set-upstream origin $(git symbolic-ref --short HEAD)'
|
||||
|
||||
# pull
|
||||
alias gl='git pull'
|
||||
alias glum='git pull upstream master'
|
||||
alias gpl='git pull'
|
||||
alias gpp='git pull && git push'
|
||||
alias gpr='git pull --rebase'
|
||||
|
||||
# remote
|
||||
alias gr='git remote'
|
||||
alias gra='git remote add'
|
||||
alias grv='git remote -v'
|
||||
|
||||
# rm
|
||||
alias grm='git rm'
|
||||
|
||||
# rebase
|
||||
alias grb='git rebase'
|
||||
alias grm='git rebase master'
|
||||
alias grmi='git rebase master -i'
|
||||
alias gprom='git fetch origin master && git rebase origin/master && git update-ref refs/heads/master origin/master' # Rebase with latest remote master
|
||||
|
||||
# reset
|
||||
alias gus='git reset HEAD'
|
||||
alias gpristine='git reset --hard && git clean -dfx'
|
||||
|
||||
# status
|
||||
alias gs='git status'
|
||||
alias gss='git status -s'
|
||||
|
||||
# shortlog
|
||||
alias gcount='git shortlog -sn'
|
||||
alias gsl='git shortlog -sn'
|
||||
|
||||
# show
|
||||
alias gsh='git show'
|
||||
|
||||
# svn
|
||||
alias gsd='git svn dcommit'
|
||||
alias gsr='git svn rebase' # Git SVN
|
||||
|
||||
# stash
|
||||
alias gst='git stash'
|
||||
alias gstb='git stash branch'
|
||||
alias gstd='git stash drop'
|
||||
alias gstl='git stash list'
|
||||
alias gstp='git stash pop' # kept due to long-standing usage
|
||||
alias gstpo='git stash pop' # recommended for it's symmetry with gstpu (push)
|
||||
|
||||
## 'stash push' introduced in git v2.13.2
|
||||
alias gstpu='git stash push'
|
||||
alias gstpum='git stash push -m'
|
||||
|
||||
## 'stash save' deprecated since git v2.16.0, alias is now push
|
||||
alias gsts='git stash push'
|
||||
alias gstsm='git stash push -m'
|
||||
|
||||
# submodules
|
||||
alias gsu='git submodule update --init --recursive'
|
||||
|
||||
# switch
|
||||
# these aliases requires git v2.23+
|
||||
alias gsw='git switch'
|
||||
alias gswc='git switch --create'
|
||||
alias gswm='git switch master'
|
||||
alias gswt='git switch --track'
|
||||
|
||||
# tag
|
||||
alias gt='git tag'
|
||||
alias gta='git tag -a'
|
||||
alias gtd='git tag -d'
|
||||
alias gtl='git tag -l'
|
||||
|
||||
case $OSTYPE in
|
||||
darwin*)
|
||||
alias gtls="git tag -l | gsort -V"
|
||||
;;
|
||||
*)
|
||||
alias gtls='git tag -l | sort -V'
|
||||
;;
|
||||
darwin*)
|
||||
alias gtls="git tag -l | gsort -V"
|
||||
;;
|
||||
*)
|
||||
alias gtls='git tag -l | sort -V'
|
||||
;;
|
||||
esac
|
||||
|
||||
# functions
|
||||
function gdv() {
|
||||
git diff --ignore-all-space "$@" | vim -R -
|
||||
}
|
||||
|
|
|
|||
|
|
@ -46,5 +46,7 @@ completion/available/vault.completion.bash
|
|||
completion/available/sdkman.completion.bash
|
||||
|
||||
# aliases
|
||||
#
|
||||
aliases/available/dnf.aliases.bash
|
||||
aliases/available/vim.aliases.bash
|
||||
aliases/available/git.aliases.bash
|
||||
|
|
|
|||
Loading…
Reference in New Issue