Browse Source

fix(git)!: standardize `git pull --rebase` aliases (#11224)

BREAKING CHANGE: The alias `gup` for `git pull --rebase` and its derivatives
are replaced by `gpr` for standardization. This means the previous aliases will
no longer be available after a few months. Meanwhile, the original aliases are
still working, with a deprecation notice.
See https://github.com/ohmyzsh/ohmyzsh/blob/master/plugins/git/README.md#deprecated-aliases
for the full list of deprecated aliases.

Fixes #11104
Closes #11224

Co-authored-by: Marc Cornellà <marc@mcornella.com>
Zeeshan 2 years ago
parent
commit
207d29b716
2 changed files with 242 additions and 221 deletions
  1. 219 215
      plugins/git/README.md
  2. 23 6
      plugins/git/git.plugin.zsh

+ 219 - 215
plugins/git/README.md

@@ -10,207 +10,205 @@ plugins=(... git)
 
 ## Aliases
 
-| Alias                  | Command                                                                                                                                                             |
-| :--------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
-| `grt`                  | `cd "$(git rev-parse --show-toplevel \|\| echo .)"`                                                                                                                 |
-| `ggpnp`                | `ggl && ggp`                                                                                                                                                        |
-| `ggpur`                | `ggu`                                                                                                                                                               |
-| `g`                    | `git`                                                                                                                                                               |
-| `ga`                   | `git add`                                                                                                                                                           |
-| `gaa`                  | `git add --all`                                                                                                                                                     |
-| `gapa`                 | `git add --patch`                                                                                                                                                   |
-| `gau`                  | `git add --update`                                                                                                                                                  |
-| `gav`                  | `git add --verbose`                                                                                                                                                 |
-| `gwip`                 | `git add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit --no-verify --no-gpg-sign --message "--wip-- [skip ci]"`                                     |
-| `gam`                  | `git am`                                                                                                                                                            |
-| `gama`                 | `git am --abort`                                                                                                                                                    |
-| `gamc`                 | `git am --continue`                                                                                                                                                 |
-| `gamscp`               | `git am --show-current-patch`                                                                                                                                       |
-| `gams`                 | `git am --skip`                                                                                                                                                     |
-| `gap`                  | `git apply`                                                                                                                                                         |
-| `gapt`                 | `git apply --3way`                                                                                                                                                  |
-| `gbs`                  | `git bisect`                                                                                                                                                        |
-| `gbsb`                 | `git bisect bad`                                                                                                                                                    |
-| `gbsg`                 | `git bisect good`                                                                                                                                                   |
-| `gbsn`                 | `git bisect new`                                                                                                                                                    |
-| `gbso`                 | `git bisect old`                                                                                                                                                    |
-| `gbsr`                 | `git bisect reset`                                                                                                                                                  |
-| `gbss`                 | `git bisect start`                                                                                                                                                  |
-| `gbl`                  | `git blame -w`                                                                                                                                                      |
-| `gb`                   | `git branch`                                                                                                                                                        |
-| `gba`                  | `git branch --all`                                                                                                                                                  |
-| `gbd`                  | `git branch --delete`                                                                                                                                               |
-| `gbD`                  | `git branch --delete --force`                                                                                                                                       |
-| `gbgd`                 | `LANG=C git branch --no-color -vv \| grep ": gone\]" \| awk '"'"'{print $1}'"'"' \| xargs git branch -d`                                                            |
-| `gbgD`                 | `LANG=C git branch --no-color -vv \| grep ": gone\]" \| awk '"'"'{print $1}'"'"' \| xargs git branch -D`                                                            |
-| `gbm`                  | `git branch --move`                                                                                                                                                 |
-| `gbnm`                 | `git branch --no-merged`                                                                                                                                            |
-| `gbr`                  | `git branch --remote`                                                                                                                                               |
-| `ggsup`                | `git branch --set-upstream-to=origin/$(git_current_branch)`                                                                                                         |
-| `gbg`                  | `LANG=C git branch -vv \| grep ": gone\]"`                                                                                                                          |
-| `gco`                  | `git checkout`                                                                                                                                                      |
-| `gcor`                 | `git checkout --recurse-submodules`                                                                                                                                 |
-| `gcb`                  | `git checkout -b`                                                                                                                                                   |
-| `gcd`                  | `git checkout $(git_develop_branch)`                                                                                                                                |
-| `gcm`                  | `git checkout $(git_main_branch)`                                                                                                                                   |
-| `gcp`                  | `git cherry-pick`                                                                                                                                                   |
-| `gcpa`                 | `git cherry-pick --abort`                                                                                                                                           |
-| `gcpc`                 | `git cherry-pick --continue`                                                                                                                                        |
-| `gclean`               | `git clean --interactive -d`                                                                                                                                        |
-| `gcl`                  | `git clone --recurse-submodules`                                                                                                                                    |
-| `gccd`                 | `git clone --recurse-submodules "$@" && cd "$(basename $\_ .git)"`                                                                                                  |
-| `gcam`                 | `git commit --all --message`                                                                                                                                        |
-| `gcas`                 | `git commit --all --signoff`                                                                                                                                        |
-| `gcasm`                | `git commit --all --signoff --message`                                                                                                                              |
-| `gcmsg`                | `git commit --message`                                                                                                                                              |
-| `gcsm`                 | `git commit --signoff --message`                                                                                                                                    |
-| `gc`                   | `git commit --verbose`                                                                                                                                              |
-| `gca`                  | `git commit --verbose --all`                                                                                                                                        |
-| `gca!`                 | `git commit --verbose --all --amend`                                                                                                                                |
-| `gcan!`                | `git commit --verbose --all --no-edit --amend`                                                                                                                      |
-| `gcans!`               | `git commit --verbose --all --signoff --no-edit --amend`                                                                                                            |
-| `gc!`                  | `git commit --verbose --amend`                                                                                                                                      |
-| `gcn!`                 | `git commit --verbose --no-edit --amend`                                                                                                                            |
-| `gcs`                  | `git commit -S`                                                                                                                                                     |
-| `gcss`                 | `git commit -S -s`                                                                                                                                                  |
-| `gcssm`                | `git commit -S -s -m`                                                                                                                                               |
-| `gcf`                  | `git config --list`                                                                                                                                                 |
-| `gdct`                 | `git describe --tags $(git rev-list --tags --max-count=1)`                                                                                                          |
-| `gd`                   | `git diff`                                                                                                                                                          |
-| `gdca`                 | `git diff --cached`                                                                                                                                                 |
-| `gdcw`                 | `git diff --cached --word-diff`                                                                                                                                     |
-| `gds`                  | `git diff --staged`                                                                                                                                                 |
-| `gdw`                  | `git diff --word-diff`                                                                                                                                              |
-| `gdv`                  | `git diff -w "$@" \| view -`                                                                                                                                        |
-| `gdup`                 | `git diff @{upstream}`                                                                                                                                              |
-| `gdnolock`             | `git diff $@ ":(exclude)package-lock.json" ":(exclude)\*.lock"`                                                                                                     |
-| `gdt`                  | `git diff-tree --no-commit-id --name-only -r`                                                                                                                       |
-| `gf`                   | `git fetch`                                                                                                                                                         |
-| `gfa`                  | `git fetch --all --prune`                                                                                                                                           |
-| `gfo`                  | `git fetch origin`                                                                                                                                                  |
-| `gg`                   | `git gui citool`                                                                                                                                                    |
-| `gga`                  | `git gui citool --amend`                                                                                                                                            |
-| `ghh`                  | `git help`                                                                                                                                                          |
-| `glgg`                 | `git log --graph`                                                                                                                                                   |
-| `glgga`                | `git log --graph --decorate --all`                                                                                                                                  |
-| `glgm`                 | `git log --graph --max-count=10`                                                                                                                                    |
-| `glod`                 | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset'`                                                            |
-| `glods`                | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' --date=short`                                               |
-| `glol`                 | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset'`                                                            |
-| `glola`                | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --all`                                                      |
-| `glols`                | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --stat`                                                     |
-| `glo`                  | `git log --oneline --decorate`                                                                                                                                      |
-| `glog`                 | `git log --oneline --decorate --graph`                                                                                                                              |
-| `gloga`                | `git log --oneline --decorate --graph --all`                                                                                                                        |
-| `glp`                  | `git log --pretty=<format>`                                                                                                                                         |
-| `glg`                  | `git log --stat`                                                                                                                                                    |
-| `glgp`                 | `git log --stat --patch`                                                                                                                                            |
-| `gignored`             | `git ls-files -v \| grep "^[[:lower:]]"`                                                                                                                            |
-| `gfg`                  | `git ls-files \| grep`                                                                                                                                              |
-| `gm`                   | `git merge`                                                                                                                                                         |
-| `gma`                  | `git merge --abort`                                                                                                                                                 |
-| `gms`                  | `git merge --squash`                                                                                                                                                |
-| `gmom`                 | `git merge origin/$(git_main_branch)`                                                                                                                               |
-| `gmum`                 | `git merge upstream/$(git_main_branch)`                                                                                                                             |
-| `gmtl`                 | `git mergetool --no-prompt`                                                                                                                                         |
-| `gmtlvim`              | `git mergetool --no-prompt --tool=vimdiff`                                                                                                                          |
-| `gl`                   | `git pull`                                                                                                                                                          |
-| `gpr`                  | `git pull --rebase`                                                                                                                                                 |
-| `gup`                  | `git pull --rebase`                                                                                                                                                 |
-| `gupa`                 | `git pull --rebase --autostash`                                                                                                                                     |
-| `gupav`                | `git pull --rebase --autostash --verbose`                                                                                                                           |
-| `gupv`                 | `git pull --rebase --verbose`                                                                                                                                       |
-| `ggu`                  | `git pull --rebase origin $(current_branch)`                                                                                                                        |
-| `gupom`                | `git pull --rebase origin $(git_main_branch)`                                                                                                                       |
-| `gupomi`               | `git pull --rebase=interactive origin $(git_main_branch)`                                                                                                           |
-| `ggpull`               | `git pull origin "$(git_current_branch)"`                                                                                                                           |
-| `ggl`                  | `git pull origin $(current_branch)`                                                                                                                                 |
-| `gluc`                 | `git pull upstream $(git_current_branch)`                                                                                                                           |
-| `glum`                 | `git pull upstream $(git_main_branch)`                                                                                                                              |
-| `gp`                   | `git push`                                                                                                                                                          |
-| `gpd`                  | `git push --dry-run`                                                                                                                                                |
-| `gpf!`                 | `git push --force`                                                                                                                                                  |
-| `ggf`                  | `git push --force origin $(current_branch)`                                                                                                                         |
-| `gpf`                  | On Git >= 2.30: `git push --force-with-lease --force-if-includes`                                                                                                   |
-| `gpf`                  | On Git < 2.30: `git push --force-with-lease`                                                                                                                        |
-| `ggfl`                 | `git push --force-with-lease origin $(current_branch)`                                                                                                              |
-| `gpsup`                | `git push --set-upstream origin $(git_current_branch)`                                                                                                              |
-| `gpsupf`               | On Git >= 2.30: `git push --set-upstream origin $(git_current_branch) --force-with-lease --force-if-includes`                                                       |
-| `gpsupf`               | On Git < 2.30: `git push --set-upstream origin $(git_current_branch) --force-with-lease`                                                                            |
-| `gpv`                  | `git push --verbose`                                                                                                                                                |
-| `gpoat`                | `git push origin --all && git push origin --tags`                                                                                                                   |
-| `gpod`                 | `git push origin --delete`                                                                                                                                          |
-| `ggpush`               | `git push origin "$(git_current_branch)"`                                                                                                                           |
-| `ggp`                  | `git push origin $(current_branch)`                                                                                                                                 |
-| `gpu`                  | `git push upstream`                                                                                                                                                 |
-| `grb`                  | `git rebase`                                                                                                                                                        |
-| `grba`                 | `git rebase --abort`                                                                                                                                                |
-| `grbc`                 | `git rebase --continue`                                                                                                                                             |
-| `grbi`                 | `git rebase --interactive`                                                                                                                                          |
-| `grbo`                 | `git rebase --onto`                                                                                                                                                 |
-| `grbs`                 | `git rebase --skip`                                                                                                                                                 |
-| `grbd`                 | `git rebase $(git_develop_branch)`                                                                                                                                  |
-| `grbm`                 | `git rebase $(git_main_branch)`                                                                                                                                     |
-| `grbom`                | `git rebase origin/$(git_main_branch)`                                                                                                                              |
-| `gr`                   | `git remote`                                                                                                                                                        |
-| `grv`                  | `git remote --verbose`                                                                                                                                              |
-| `gra`                  | `git remote add`                                                                                                                                                    |
-| `grrm`                 | `git remote remove`                                                                                                                                                 |
-| `grmv`                 | `git remote rename`                                                                                                                                                 |
-| `grset`                | `git remote set-url`                                                                                                                                                |
-| `grup`                 | `git remote update`                                                                                                                                                 |
-| `grh`                  | `git reset`                                                                                                                                                         |
-| `gru`                  | `git reset --`                                                                                                                                                      |
-| `grhh`                 | `git reset --hard`                                                                                                                                                  |
-| `grhk`                 | `git reset --keep`                                                                                                                                                  |
-| `grhs`                 | `git reset --soft`                                                                                                                                                  |
-| `gpristine`            | `git reset --hard && git clean -dffx`                                                                                                                               |
-| `groh`                 | `git reset origin/$(git_current_branch) --hard`                                                                                                                     |
-| `grs`                  | `git restore`                                                                                                                                                       |
-| `grss`                 | `git restore --source`                                                                                                                                              |
-| `grst`                 | `git restore --staged`                                                                                                                                              |
-| `gunwip`               | `git rev-list --max-count=1 --format="%s" HEAD \| grep -q "--wip--" && git reset HEAD~1`                                                                            |
-| `grev`                 | `git revert`                                                                                                                                                        |
-| `grm`                  | `git rm`                                                                                                                                                            |
-| `grmc`                 | `git rm --cached`                                                                                                                                                   |
-| `gcount`               | `git shortlog --summary -n`                                                                                                                                         |
-| `gsh`                  | `git show`                                                                                                                                                          |
-| `gsps`                 | `git show --pretty=short --show-signature`                                                                                                                          |
-| `gstall`               | `git stash --all`                                                                                                                                                   |
-| `gstu`                 | `git stash --include-untracked`                                                                                                                                     |
-| `gstaa`                | `git stash apply`                                                                                                                                                   |
-| `gstc`                 | `git stash clear`                                                                                                                                                   |
-| `gstd`                 | `git stash drop`                                                                                                                                                    |
-| `gstl`                 | `git stash list`                                                                                                                                                    |
-| `gstp`                 | `git stash pop`                                                                                                                                                     |
-| `gsta`                 | On Git >= 2.13: `git stash push`                                                                                                                                    |
-| `gsta`                 | On Git < 2.13: `git stash save`                                                                                                                                     |
-| `gsts`                 | `git stash show --patch`                                                                                                                                            |
-| `gst`                  | `git status`                                                                                                                                                        |
-| `gss`                  | `git status --short`                                                                                                                                                |
-| `gsb`                  | `git status --short -b`                                                                                                                                             |
-| `gsi`                  | `git submodule init`                                                                                                                                                |
-| `gsu`                  | `git submodule update`                                                                                                                                              |
-| `gsd`                  | `git svn dcommit`                                                                                                                                                   |
-| `git-svn-dcommit-push` | `git svn dcommit && git push github $(git_main_branch):svntrunk`                                                                                                    |
-| `gsr`                  | `git svn rebase`                                                                                                                                                    |
-| `gsw`                  | `git switch`                                                                                                                                                        |
-| `gswc`                 | `git switch -c`                                                                                                                                                     |
-| `gswd`                 | `git switch $(git_develop_branch)`                                                                                                                                  |
-| `gswm`                 | `git switch $(git_main_branch)`                                                                                                                                     |
-| `gta`                  | `git tag --annotate`                                                                                                                                                |
-| `gts`                  | `git tag -s`                                                                                                                                                        |
-| `gtv`                  | `git tag \| sort -V`                                                                                                                                                |
-| `gignore`              | `git update-index --assume-unchanged`                                                                                                                               |
-| `gunignore`            | `git update-index --no-assume-unchanged`                                                                                                                            |
-| `gwch`                 | `git whatchanged -p --abbrev-commit --pretty=medium`                                                                                                                |
-| `gwt`                  | `git worktree`                                                                                                                                                      |
-| `gwtls`                | `git worktree list`                                                                                                                                                 |
-| `gwtmv`                | `git worktree move`                                                                                                                                                 |
-| `gwtrm`                | `git worktree remove`                                                                                                                                               |
-| `gk`                   | `gitk --all --branches &!`                                                                                                                                          |
-| `gke`                  | `gitk --all $(git log --walk-reflogs --pretty=%h) &!`                                                                                                               |
-| `gtl`                  | `gtl(){ git tag --sort=-v:refname -n --list ${1}\* }; noglob gtl`                                                                                                   |
+| Alias                  | Command                                                                                                                         |
+| :--------------------- | :------------------------------------------------------------------------------------------------------------------------------ |
+| `grt`                  | `cd "$(git rev-parse --show-toplevel \|\| echo .)"`                                                                             |
+| `ggpnp`                | `ggl && ggp`                                                                                                                    |
+| `ggpur`                | `ggu`                                                                                                                           |
+| `g`                    | `git`                                                                                                                           |
+| `ga`                   | `git add`                                                                                                                       |
+| `gaa`                  | `git add --all`                                                                                                                 |
+| `gapa`                 | `git add --patch`                                                                                                               |
+| `gau`                  | `git add --update`                                                                                                              |
+| `gav`                  | `git add --verbose`                                                                                                             |
+| `gwip`                 | `git add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit --no-verify --no-gpg-sign --message "--wip-- [skip ci]"` |
+| `gam`                  | `git am`                                                                                                                        |
+| `gama`                 | `git am --abort`                                                                                                                |
+| `gamc`                 | `git am --continue`                                                                                                             |
+| `gamscp`               | `git am --show-current-patch`                                                                                                   |
+| `gams`                 | `git am --skip`                                                                                                                 |
+| `gap`                  | `git apply`                                                                                                                     |
+| `gapt`                 | `git apply --3way`                                                                                                              |
+| `gbs`                  | `git bisect`                                                                                                                    |
+| `gbsb`                 | `git bisect bad`                                                                                                                |
+| `gbsg`                 | `git bisect good`                                                                                                               |
+| `gbsn`                 | `git bisect new`                                                                                                                |
+| `gbso`                 | `git bisect old`                                                                                                                |
+| `gbsr`                 | `git bisect reset`                                                                                                              |
+| `gbss`                 | `git bisect start`                                                                                                              |
+| `gbl`                  | `git blame -w`                                                                                                                  |
+| `gb`                   | `git branch`                                                                                                                    |
+| `gba`                  | `git branch --all`                                                                                                              |
+| `gbd`                  | `git branch --delete`                                                                                                           |
+| `gbD`                  | `git branch --delete --force`                                                                                                   |
+| `gbgd`                 | `LANG=C git branch --no-color -vv \| grep ": gone\]" \| awk '"'"'{print $1}'"'"' \| xargs git branch -d`                        |
+| `gbgD`                 | `LANG=C git branch --no-color -vv \| grep ": gone\]" \| awk '"'"'{print $1}'"'"' \| xargs git branch -D`                        |
+| `gbm`                  | `git branch --move`                                                                                                             |
+| `gbnm`                 | `git branch --no-merged`                                                                                                        |
+| `gbr`                  | `git branch --remote`                                                                                                           |
+| `ggsup`                | `git branch --set-upstream-to=origin/$(git_current_branch)`                                                                     |
+| `gbg`                  | `LANG=C git branch -vv \| grep ": gone\]"`                                                                                      |
+| `gco`                  | `git checkout`                                                                                                                  |
+| `gcor`                 | `git checkout --recurse-submodules`                                                                                             |
+| `gcb`                  | `git checkout -b`                                                                                                               |
+| `gcd`                  | `git checkout $(git_develop_branch)`                                                                                            |
+| `gcm`                  | `git checkout $(git_main_branch)`                                                                                               |
+| `gcp`                  | `git cherry-pick`                                                                                                               |
+| `gcpa`                 | `git cherry-pick --abort`                                                                                                       |
+| `gcpc`                 | `git cherry-pick --continue`                                                                                                    |
+| `gclean`               | `git clean --interactive -d`                                                                                                    |
+| `gcl`                  | `git clone --recurse-submodules`                                                                                                |
+| `gccd`                 | `git clone --recurse-submodules "$@" && cd "$(basename $\_ .git)"`                                                              |
+| `gcam`                 | `git commit --all --message`                                                                                                    |
+| `gcas`                 | `git commit --all --signoff`                                                                                                    |
+| `gcasm`                | `git commit --all --signoff --message`                                                                                          |
+| `gcmsg`                | `git commit --message`                                                                                                          |
+| `gcsm`                 | `git commit --signoff --message`                                                                                                |
+| `gc`                   | `git commit --verbose`                                                                                                          |
+| `gca`                  | `git commit --verbose --all`                                                                                                    |
+| `gca!`                 | `git commit --verbose --all --amend`                                                                                            |
+| `gcan!`                | `git commit --verbose --all --no-edit --amend`                                                                                  |
+| `gcans!`               | `git commit --verbose --all --signoff --no-edit --amend`                                                                        |
+| `gc!`                  | `git commit --verbose --amend`                                                                                                  |
+| `gcn!`                 | `git commit --verbose --no-edit --amend`                                                                                        |
+| `gcs`                  | `git commit -S`                                                                                                                 |
+| `gcss`                 | `git commit -S -s`                                                                                                              |
+| `gcssm`                | `git commit -S -s -m`                                                                                                           |
+| `gcf`                  | `git config --list`                                                                                                             |
+| `gdct`                 | `git describe --tags $(git rev-list --tags --max-count=1)`                                                                      |
+| `gd`                   | `git diff`                                                                                                                      |
+| `gdca`                 | `git diff --cached`                                                                                                             |
+| `gdcw`                 | `git diff --cached --word-diff`                                                                                                 |
+| `gds`                  | `git diff --staged`                                                                                                             |
+| `gdw`                  | `git diff --word-diff`                                                                                                          |
+| `gdv`                  | `git diff -w "$@" \| view -`                                                                                                    |
+| `gdup`                 | `git diff @{upstream}`                                                                                                          |
+| `gdnolock`             | `git diff $@ ":(exclude)package-lock.json" ":(exclude)\*.lock"`                                                                 |
+| `gdt`                  | `git diff-tree --no-commit-id --name-only -r`                                                                                   |
+| `gf`                   | `git fetch`                                                                                                                     |
+| `gfa`                  | `git fetch --all --prune`                                                                                                       |
+| `gfo`                  | `git fetch origin`                                                                                                              |
+| `gg`                   | `git gui citool`                                                                                                                |
+| `gga`                  | `git gui citool --amend`                                                                                                        |
+| `ghh`                  | `git help`                                                                                                                      |
+| `glgg`                 | `git log --graph`                                                                                                               |
+| `glgga`                | `git log --graph --decorate --all`                                                                                              |
+| `glgm`                 | `git log --graph --max-count=10`                                                                                                |
+| `glod`                 | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset'`                        |
+| `glods`                | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' --date=short`           |
+| `glol`                 | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset'`                        |
+| `glola`                | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --all`                  |
+| `glols`                | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --stat`                 |
+| `glo`                  | `git log --oneline --decorate`                                                                                                  |
+| `glog`                 | `git log --oneline --decorate --graph`                                                                                          |
+| `gloga`                | `git log --oneline --decorate --graph --all`                                                                                    |
+| `glp`                  | `git log --pretty=<format>`                                                                                                     |
+| `glg`                  | `git log --stat`                                                                                                                |
+| `glgp`                 | `git log --stat --patch`                                                                                                        |
+| `gignored`             | `git ls-files -v \| grep "^[[:lower:]]"`                                                                                        |
+| `gfg`                  | `git ls-files \| grep`                                                                                                          |
+| `gm`                   | `git merge`                                                                                                                     |
+| `gma`                  | `git merge --abort`                                                                                                             |
+| `gms`                  | `git merge --squash`                                                                                                            |
+| `gmom`                 | `git merge origin/$(git_main_branch)`                                                                                           |
+| `gmum`                 | `git merge upstream/$(git_main_branch)`                                                                                         |
+| `gmtl`                 | `git mergetool --no-prompt`                                                                                                     |
+| `gmtlvim`              | `git mergetool --no-prompt --tool=vimdiff`                                                                                      |
+| `gl`                   | `git pull`                                                                                                                      |
+| `gpr`                  | `git pull --rebase`                                                                                                             |
+| `gprv`                 | `git pull --rebase -v`                                                                                                          |
+| `gpra`                 | `git pull --rebase --autostash`                                                                                                 |
+| `gprav`                | `git pull --rebase --autostash -v`                                                                                              |
+| `gprom`                | `git pull --rebase origin $(git_main_branch)`                                                                                   |
+| `gpromi`               | `git pull --rebase=interactive origin $(git_main_branch)`                                                                       |
+| `ggpull`               | `git pull origin "$(git_current_branch)"`                                                                                       |
+| `ggl`                  | `git pull origin $(current_branch)`                                                                                             |
+| `gluc`                 | `git pull upstream $(git_current_branch)`                                                                                       |
+| `glum`                 | `git pull upstream $(git_main_branch)`                                                                                          |
+| `gp`                   | `git push`                                                                                                                      |
+| `gpd`                  | `git push --dry-run`                                                                                                            |
+| `gpf!`                 | `git push --force`                                                                                                              |
+| `ggf`                  | `git push --force origin $(current_branch)`                                                                                     |
+| `gpf`                  | On Git >= 2.30: `git push --force-with-lease --force-if-includes`                                                               |
+| `gpf`                  | On Git < 2.30: `git push --force-with-lease`                                                                                    |
+| `ggfl`                 | `git push --force-with-lease origin $(current_branch)`                                                                          |
+| `gpsup`                | `git push --set-upstream origin $(git_current_branch)`                                                                          |
+| `gpsupf`               | On Git >= 2.30: `git push --set-upstream origin $(git_current_branch) --force-with-lease --force-if-includes`                   |
+| `gpsupf`               | On Git < 2.30: `git push --set-upstream origin $(git_current_branch) --force-with-lease`                                        |
+| `gpv`                  | `git push --verbose`                                                                                                            |
+| `gpoat`                | `git push origin --all && git push origin --tags`                                                                               |
+| `gpod`                 | `git push origin --delete`                                                                                                      |
+| `ggpush`               | `git push origin "$(git_current_branch)"`                                                                                       |
+| `ggp`                  | `git push origin $(current_branch)`                                                                                             |
+| `gpu`                  | `git push upstream`                                                                                                             |
+| `grb`                  | `git rebase`                                                                                                                    |
+| `grba`                 | `git rebase --abort`                                                                                                            |
+| `grbc`                 | `git rebase --continue`                                                                                                         |
+| `grbi`                 | `git rebase --interactive`                                                                                                      |
+| `grbo`                 | `git rebase --onto`                                                                                                             |
+| `grbs`                 | `git rebase --skip`                                                                                                             |
+| `grbd`                 | `git rebase $(git_develop_branch)`                                                                                              |
+| `grbm`                 | `git rebase $(git_main_branch)`                                                                                                 |
+| `grbom`                | `git rebase origin/$(git_main_branch)`                                                                                          |
+| `gr`                   | `git remote`                                                                                                                    |
+| `grv`                  | `git remote --verbose`                                                                                                          |
+| `gra`                  | `git remote add`                                                                                                                |
+| `grrm`                 | `git remote remove`                                                                                                             |
+| `grmv`                 | `git remote rename`                                                                                                             |
+| `grset`                | `git remote set-url`                                                                                                            |
+| `grup`                 | `git remote update`                                                                                                             |
+| `grh`                  | `git reset`                                                                                                                     |
+| `gru`                  | `git reset --`                                                                                                                  |
+| `grhh`                 | `git reset --hard`                                                                                                              |
+| `grhk`                 | `git reset --keep`                                                                                                              |
+| `grhs`                 | `git reset --soft`                                                                                                              |
+| `gpristine`            | `git reset --hard && git clean -dffx`                                                                                           |
+| `groh`                 | `git reset origin/$(git_current_branch) --hard`                                                                                 |
+| `grs`                  | `git restore`                                                                                                                   |
+| `grss`                 | `git restore --source`                                                                                                          |
+| `grst`                 | `git restore --staged`                                                                                                          |
+| `gunwip`               | `git rev-list --max-count=1 --format="%s" HEAD \| grep -q "--wip--" && git reset HEAD~1`                                        |
+| `grev`                 | `git revert`                                                                                                                    |
+| `grm`                  | `git rm`                                                                                                                        |
+| `grmc`                 | `git rm --cached`                                                                                                               |
+| `gcount`               | `git shortlog --summary -n`                                                                                                     |
+| `gsh`                  | `git show`                                                                                                                      |
+| `gsps`                 | `git show --pretty=short --show-signature`                                                                                      |
+| `gstall`               | `git stash --all`                                                                                                               |
+| `gstu`                 | `git stash --include-untracked`                                                                                                 |
+| `gstaa`                | `git stash apply`                                                                                                               |
+| `gstc`                 | `git stash clear`                                                                                                               |
+| `gstd`                 | `git stash drop`                                                                                                                |
+| `gstl`                 | `git stash list`                                                                                                                |
+| `gstp`                 | `git stash pop`                                                                                                                 |
+| `gsta`                 | On Git >= 2.13: `git stash push`                                                                                                |
+| `gsta`                 | On Git < 2.13: `git stash save`                                                                                                 |
+| `gsts`                 | `git stash show --patch`                                                                                                        |
+| `gst`                  | `git status`                                                                                                                    |
+| `gss`                  | `git status --short`                                                                                                            |
+| `gsb`                  | `git status --short -b`                                                                                                         |
+| `gsi`                  | `git submodule init`                                                                                                            |
+| `gsu`                  | `git submodule update`                                                                                                          |
+| `gsd`                  | `git svn dcommit`                                                                                                               |
+| `git-svn-dcommit-push` | `git svn dcommit && git push github $(git_main_branch):svntrunk`                                                                |
+| `gsr`                  | `git svn rebase`                                                                                                                |
+| `gsw`                  | `git switch`                                                                                                                    |
+| `gswc`                 | `git switch -c`                                                                                                                 |
+| `gswd`                 | `git switch $(git_develop_branch)`                                                                                              |
+| `gswm`                 | `git switch $(git_main_branch)`                                                                                                 |
+| `gta`                  | `git tag --annotate`                                                                                                            |
+| `gts`                  | `git tag -s`                                                                                                                    |
+| `gtv`                  | `git tag \| sort -V`                                                                                                            |
+| `gignore`              | `git update-index --assume-unchanged`                                                                                           |
+| `gunignore`            | `git update-index --no-assume-unchanged`                                                                                        |
+| `gwch`                 | `git whatchanged -p --abbrev-commit --pretty=medium`                                                                            |
+| `gwt`                  | `git worktree`                                                                                                                  |
+| `gwtls`                | `git worktree list`                                                                                                             |
+| `gwtmv`                | `git worktree move`                                                                                                             |
+| `gwtrm`                | `git worktree remove`                                                                                                           |
+| `gk`                   | `gitk --all --branches &!`                                                                                                      |
+| `gke`                  | `gitk --all $(git log --walk-reflogs --pretty=%h) &!`                                                                           |
+| `gtl`                  | `gtl(){ git tag --sort=-v:refname -n --list ${1}\* }; noglob gtl`                                                               |
 
 ### Main branch preference
 
@@ -224,19 +222,25 @@ branch exists. We do this via the function `git_main_branch`.
 These are aliases that have been removed, renamed, or otherwise modified in a way that may, or may not,
 receive further support.
 
-| Alias    | Command                                                | Modification                                              |
-| :------- | :----------------------------------------------------- | :-------------------------------------------------------- |
-| `gap`    | `git add --patch`                                      | New alias: `gapa`.                                        |
-| `gcl`    | `git config --list`                                    | New alias: `gcf`.                                         |
-| `gdc`    | `git diff --cached`                                    | New alias: `gdca`.                                        |
-| `gdt`    | `git difftool`                                         | No replacement.                                           |
-| `ggpull` | `git pull origin $(current_branch)`                    | New alias: `ggl`. (`ggpull` still exists for now though.) |
-| `ggpur`  | `git pull --rebase origin $(current_branch)`           | New alias: `ggu`. (`ggpur` still exists for now though.)  |
-| `ggpush` | `git push origin $(current_branch)`                    | New alias: `ggp`. (`ggpush` still exists for now though.) |
-| `gk`     | `gitk --all --branches`                                | Now aliased to `gitk --all --branches`.                   |
-| `glg`    | `git log --stat --max-count=10`                        | Now aliased to `git log --stat --color`.                  |
-| `glgg`   | `git log --graph --max-count=10`                       | Now aliased to `git log --graph --color`.                 |
-| `gwc`    | `git whatchanged -p --abbrev-commit --pretty = medium` | New alias: `gwch`.                                        |
+| Alias    | Command                                                   | Modification                                              |
+| :------- | :-------------------------------------------------------- | :-------------------------------------------------------- |
+| `gap`    | `git add --patch`                                         | New alias: `gapa`.                                        |
+| `gcl`    | `git config --list`                                       | New alias: `gcf`.                                         |
+| `gdc`    | `git diff --cached`                                       | New alias: `gdca`.                                        |
+| `gdt`    | `git difftool`                                            | No replacement.                                           |
+| `ggpull` | `git pull origin $(current_branch)`                       | New alias: `ggl`. (`ggpull` still exists for now though.) |
+| `ggpur`  | `git pull --rebase origin $(current_branch)`              | New alias: `ggu`. (`ggpur` still exists for now though.)  |
+| `ggpush` | `git push origin $(current_branch)`                       | New alias: `ggp`. (`ggpush` still exists for now though.) |
+| `gk`     | `gitk --all --branches`                                   | Now aliased to `gitk --all --branches`.                   |
+| `glg`    | `git log --stat --max-count=10`                           | Now aliased to `git log --stat --color`.                  |
+| `glgg`   | `git log --graph --max-count=10`                          | Now aliased to `git log --graph --color`.                 |
+| `gwc`    | `git whatchanged -p --abbrev-commit --pretty = medium`    | New alias: `gwch`.                                        |
+| `gup`    | `git pull --rebase`                                       | now alias `gpr`                                           |
+| `gupv`   | `git pull --rebase -v`                                    | now alias `gprv`                                          |
+| `gupa`   | `git pull --rebase --autostash`                           | now alias `gpra`                                          |
+| `gupav`  | `git pull --rebase --autostash -v`                        | now alias `gprav`                                         |
+| `gupom`  | `git pull --rebase origin $(git_main_branch)`             | now alias `gprom`                                         |
+| `gupomi` | `git pull --rebase=interactive origin $(git_main_branch)` | now alias `gpromi`                                        |
 
 ## Functions
 
@@ -250,7 +254,7 @@ receive further support.
 | `git_develop_branch`     | Returns the name of the “development” branch: `dev`, `devel`, `development` if they exist, `develop` otherwise. |
 | `git_main_branch`        | Returns the name of the main branch: `main` if it exists, `master` otherwise.                                   |
 | `grename <old> <new>`    | Renames branch `<old>` to `<new>`, including on the origin remote.                                              |
-| `gbda`                   | Deletes all merged branches                                                                   |
+| `gbda`                   | Deletes all merged branches                                                                                     |
 | `gbds`                   | Deletes all squash-merged branches (**Note: performance degrades with number of branches**)                     |
 
 ### Work in Progress (WIP)

+ 23 - 6
plugins/git/git.plugin.zsh

@@ -246,12 +246,12 @@ alias gmom='git merge origin/$(git_main_branch)'
 alias gmum='git merge upstream/$(git_main_branch)'
 alias gmtl='git mergetool --no-prompt'
 alias gmtlvim='git mergetool --no-prompt --tool=vimdiff'
+
 alias gl='git pull'
 alias gpr='git pull --rebase'
-alias gup='git pull --rebase'
-alias gupa='git pull --rebase --autostash'
-alias gupav='git pull --rebase --autostash --verbose'
-alias gupv='git pull --rebase --verbose'
+alias gprv='git pull --rebase -v'
+alias gpra='git pull --rebase --autostash'
+alias gprav='git pull --rebase --autostash -v'
 
 function ggu() {
   [[ "$#" != 1 ]] && local b="$(git_current_branch)"
@@ -259,8 +259,8 @@ function ggu() {
 }
 compdef _git ggu=git-checkout
 
-alias gupom='git pull --rebase origin $(git_main_branch)'
-alias gupomi='git pull --rebase=interactive origin $(git_main_branch)'
+alias gprom='git pull --rebase origin $(git_main_branch)'
+alias gpromi='git pull --rebase=interactive origin $(git_main_branch)'
 alias ggpull='git pull origin "$(git_current_branch)"'
 
 function ggl() {
@@ -388,3 +388,20 @@ alias gk='\gitk --all --branches &!'
 alias gke='\gitk --all $(git log --walk-reflogs --pretty=%h) &!'
 
 unset git_version
+
+# Logic for adding warnings on deprecated aliases
+local old_alias new_alias
+for old_alias new_alias (
+  # TODO(2023-10-19): remove deprecated `git pull --rebase` aliases
+  gup     gpr
+  gupv    gprv
+  gupa    gpra
+  gupav   gprav
+  gupom   gprom
+  gupomi  gpromi
+); do
+  aliases[$old_alias]="
+    print -Pu2 \"%F{yellow}[oh-my-zsh] '%F{red}${old_alias}%F{yellow}' is a deprecated alias, using '%F{green}${new_alias}%F{yellow}' instead.%f\"
+    $new_alias"
+done
+unset old_alias new_alias