From 436381de935daa0db2c5b4d010bfa8366b9f39e8 Mon Sep 17 00:00:00 2001 From: Ron Green <11993626+georgettica@users.noreply.github.com> Date: Wed, 16 Dec 2020 16:56:59 +0200 Subject: [PATCH 1/3] refactor(aliases): sort git aliases file and lint it - move all comments to the same line so they wont be jumbled - also add to clean_files.txt --- aliases/available/git.aliases.bash | 297 +++++++++++++++++------------ clean_files.txt | 2 + 2 files changed, 174 insertions(+), 125 deletions(-) diff --git a/aliases/available/git.aliases.bash b/aliases/available/git.aliases.bash index a46b44fa..c2fa0d67 100644 --- a/aliases/available/git.aliases.bash +++ b/aliases/available/git.aliases.bash @@ -1,137 +1,184 @@ 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' + +# odds and ends +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' + +# odds and ends +alias gcl='git clone' +alias gclean='git clean -fd' +alias gcount='git shortlog -sn' + +# 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' +# Another Git alias +alias get='git' + +# odds and ends +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' + +# 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/ + +# odds and ends +alias ggui='git gui' +alias ghm='cd '\''$(git rev-parse --show-toplevel)'\''' # Git home +alias gm='git merge' +alias gmv='git mv' +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' + +# odds and ends +alias gpristine='git reset --hard && git clean -dfx' +alias gprom='git fetch origin master && git rebase origin/master && git update-ref refs/heads/master origin/master' # Rebase with latest remote master + +# remote +alias gr='git remote' +alias gra='git remote add' +alias grv='git remote -v' + +# odds and ends +alias grm='git rm' + +# rebase +alias grb='git rebase' +alias grm='git rebase master' +alias grmi='git rebase master -i' + +# status +alias gs='git status' +alias gss='git status -s' + +# odds and ends alias gsd='git svn dcommit' +alias gsh='git show' +alias gsl='git shortlog -sn' +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' + +# odds and ends +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' + +# odds and ends +alias gu='git ls-files . --exclude-standard --others' # Show untracked files +alias gup='git fetch && git rebase' +alias gus='git reset HEAD' +alias gwc='git whatchanged' + +# appendage to ghm +# it's here as there is a command called gh on some machines +if ! _command_exists gh; then + alias gh='ghm' +fi 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 +gdv() { + git diff --ignore-all-space "$@" | vim -R - +} diff --git a/clean_files.txt b/clean_files.txt index 85522112..4d7df5eb 100644 --- a/clean_files.txt +++ b/clean_files.txt @@ -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 From 8723fc56b2ea962880c81d78e09e87b38808633e Mon Sep 17 00:00:00 2001 From: Noah Gorny Date: Fri, 8 Jan 2021 23:43:00 +0200 Subject: [PATCH 2/3] aliases: git: Sort all commands, even miniscule ones --- aliases/available/git.aliases.bash | 70 +++++++++++++++++------------- 1 file changed, 40 insertions(+), 30 deletions(-) diff --git a/aliases/available/git.aliases.bash b/aliases/available/git.aliases.bash index c2fa0d67..09c68d6d 100644 --- a/aliases/available/git.aliases.bash +++ b/aliases/available/git.aliases.bash @@ -2,6 +2,7 @@ cite 'about-alias' about-alias 'common git abbreviations' alias g='git' +alias get='git' # add alias ga='git add' @@ -17,7 +18,7 @@ alias gbm='git branch -m' alias gbt='git branch --track' alias gdel='git branch -D' -# odds and ends +# 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 @@ -39,10 +40,11 @@ alias gcom='git checkout master' alias gcpd='git checkout master; git pull; git branch -D' alias gct='git checkout --track' -# odds and ends +# clone alias gcl='git clone' + +# clean alias gclean='git clean -fd' -alias gcount='git shortlog -sn' # cherry-pick alias gcp='git cherry-pick' @@ -53,10 +55,7 @@ alias gd='git diff' alias gds='git diff --staged' alias gdt='git difftool' -# Another Git alias -alias get='git' - -# odds and ends +# archive alias gexport='git archive --format zip --output' # fetch @@ -65,6 +64,7 @@ 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' @@ -72,12 +72,28 @@ alias ggf='git log --graph --date=short --pretty=format:'\''%C(auto)%h %Cgreen%a 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' -# odds and ends +# 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 @@ -98,31 +114,37 @@ alias gpl='git pull' alias gpp='git pull && git push' alias gpr='git pull --rebase' -# odds and ends -alias gpristine='git reset --hard && git clean -dfx' -alias gprom='git fetch origin master && git rebase origin/master && git update-ref refs/heads/master origin/master' # Rebase with latest remote master - # remote alias gr='git remote' alias gra='git remote add' alias grv='git remote -v' -# odds and ends +# 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' -# odds and ends -alias gsd='git svn dcommit' -alias gsh='git show' +# 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 @@ -141,7 +163,7 @@ alias gstpum='git stash push -m' alias gsts='git stash push' alias gstsm='git stash push -m' -# odds and ends +# submodules alias gsu='git submodule update --init --recursive' # switch @@ -157,18 +179,6 @@ alias gta='git tag -a' alias gtd='git tag -d' alias gtl='git tag -l' -# odds and ends -alias gu='git ls-files . --exclude-standard --others' # Show untracked files -alias gup='git fetch && git rebase' -alias gus='git reset HEAD' -alias gwc='git whatchanged' - -# appendage to ghm -# it's here as there is a command called gh on some machines -if ! _command_exists gh; then - alias gh='ghm' -fi - case $OSTYPE in darwin*) alias gtls="git tag -l | gsort -V" @@ -179,6 +189,6 @@ case $OSTYPE in esac # functions -gdv() { +function gdv() { git diff --ignore-all-space "$@" | vim -R - } From dd4e410a324ebb861af1094d5748deca1137f458 Mon Sep 17 00:00:00 2001 From: Noah Gorny Date: Wed, 13 Jan 2021 18:24:53 +0200 Subject: [PATCH 3/3] aliases: git: Add shellcheck header --- aliases/available/git.aliases.bash | 1 + 1 file changed, 1 insertion(+) diff --git a/aliases/available/git.aliases.bash b/aliases/available/git.aliases.bash index 09c68d6d..4f82ead0 100644 --- a/aliases/available/git.aliases.bash +++ b/aliases/available/git.aliases.bash @@ -1,3 +1,4 @@ +# shellcheck shell=bash cite 'about-alias' about-alias 'common git abbreviations'