diff options
| author | Miguel Hargreaves Pimenta <jmiguelpimenta@icloud.com> | 2023-08-23 12:38:32 +0100 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-08-23 13:38:32 +0200 | 
| commit | 33c0de7add12b050b94fd6f2f988e9b5547d172c (patch) | |
| tree | e708d74b706d828f241e3b67cdc53d771406df40 | |
| parent | 3f477e5da5ee42356f103d2c5cdd478d23bf9f03 (diff) | |
| download | zsh-33c0de7add12b050b94fd6f2f988e9b5547d172c.tar.gz zsh-33c0de7add12b050b94fd6f2f988e9b5547d172c.tar.bz2 zsh-33c0de7add12b050b94fd6f2f988e9b5547d172c.zip | |
refactor(git): sort git aliases alphabetically (#9743)
| -rw-r--r-- | plugins/git/README.md | 419 | ||||
| -rw-r--r-- | plugins/git/git.plugin.zsh | 434 | 
2 files changed, 427 insertions, 426 deletions
| diff --git a/plugins/git/README.md b/plugins/git/README.md index d18531955..0b757c481 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -10,213 +10,214 @@ plugins=(... git)  ## Aliases -| Alias                | Command                                                                                                                                                                                  | -| :------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| g                    | git                                                                                                                                                                                      | -| ga                   | git add                                                                                                                                                                                  | -| gaa                  | git add --all                                                                                                                                                                            | -| gapa                 | git add --patch                                                                                                                                                                          | -| gau                  | git add --update                                                                                                                                                                         | -| gav                  | git add --verbose                                                                                                                                                                        | -| gap                  | git apply                                                                                                                                                                                | -| gapt                 | git apply --3way                                                                                                                                                                         | -| gb                   | git branch                                                                                                                                                                               | -| gba                  | git branch --all                                                                                                                                                                         | -| gbd                  | git branch --delete                                                                                                                                                                      | -| gbda                 | git branch --no-color --merged \| grep -vE "^([+*]\|\s*(<span>$</span>(git_main_branch)\|<span>$</span>(git_develop_branch))\s*<span>$</span>)" \| xargs git branch --delete 2>/dev/null | -| gbD                  | git branch --delete --force                                                                                                                                                              | -| gbg                  | git branch -vv | grep ": gone\]"                                                                                                                                                         | -| gbgd                 | git branch --no-color -vv | grep ": gone\]" | awk '"'"'{print $1}'"'"' | xargs git branch -d                                                                                             | -| gbgD                 | git branch --no-color -vv | grep ": gone\]" | awk '"'"'{print $1}'"'"' | xargs git branch -D                                                                                             | -| gbl                  | git blame -b -w                                                                                                                                                                          | -| gbnm                 | git branch --no-merged                                                                                                                                                                   | -| gbr                  | git branch --remote                                                                                                                                                                      | -| gbs                  | git bisect                                                                                                                                                                               | -| gbsb                 | git bisect bad                                                                                                                                                                           | -| gbsg                 | git bisect good                                                                                                                                                                          | -| gbsr                 | git bisect reset                                                                                                                                                                         | -| gbss                 | git bisect start                                                                                                                                                                         | -| gc                   | git commit --verbose                                                                                                                                                                     | -| gc!                  | git commit --verbose --amend                                                                                                                                                             | -| gcn!                 | git commit --verbose --no-edit --amend                                                                                                                                                   | -| 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                                                                                                                                   | -| gcam                 | git commit --all --message                                                                                                                                                               | -| gcas                 | git commit --all --signoff                                                                                                                                                               | -| gcasm                | git commit --all --signoff --message                                                                                                                                                     | -| gcsm                 | git commit --signoff --message                                                                                                                                                           | -| gcb                  | git checkout -b                                                                                                                                                                          | -| gcf                  | git config --list                                                                                                                                                                        | -| gcl                  | git clone --recurse-submodules                                                                                                                                                           | -| gccd                 | git clone --recurse-submodules "<span>$</span>@" && cd "<span>$</span>(basename <span>$</span>\_ .git)"                                                                                  | -| gclean               | git clean --interactive -d                                                                                                                                                               | -| gpristine            | git reset --hard && git clean -dffx                                                                                                                                                      | -| gcm                  | git checkout $(git_main_branch)                                                                                                                                                          | -| gcd                  | git checkout $(git_develop_branch)                                                                                                                                                       | -| gcmsg                | git commit --message                                                                                                                                                                     | -| gco                  | git checkout                                                                                                                                                                             | -| gcor                 | git checkout --recurse-submodules                                                                                                                                                        | -| gcount               | git shortlog --summary -n                                                                                                                                                                | -| gcp                  | git cherry-pick                                                                                                                                                                          | -| gcpa                 | git cherry-pick --abort                                                                                                                                                                  | -| gcpc                 | git cherry-pick --continue                                                                                                                                                               | -| gcs                  | git commit -S                                                                                                                                                                            | -| gcss                 | git commit -S -s                                                                                                                                                                         | -| gcssm                | git commit -S -s -m                                                                                                                                                                      | -| gd                   | git diff                                                                                                                                                                                 | -| gdca                 | git diff --cached                                                                                                                                                                        | -| gdcw                 | git diff --cached --word-diff                                                                                                                                                            | -| gdct                 | git describe --tags $(git rev-list --tags --max-count=1)                                                                                                                                 | -| gds                  | git diff --staged                                                                                                                                                                        | -| gdt                  | git diff-tree --no-commit-id --name-only -r                                                                                                                                              | -| gdnolock             | git diff $@ ":(exclude)package-lock.json" ":(exclude)\*.lock"                                                                                                                            | -| gdup                 | git diff @{upstream}                                                                                                                                                                     | -| gdv                  | git diff -w $@ \| view -                                                                                                                                                                 | -| gdw                  | git diff --word-diff                                                                                                                                                                     | -| gf                   | git fetch                                                                                                                                                                                | -| gfa                  | git fetch --all --prune                                                                                                                                                                  | -| gfg                  | git ls-files \| grep                                                                                                                                                                     | -| gfo                  | git fetch origin                                                                                                                                                                         | -| gg                   | git gui citool                                                                                                                                                                           | -| gga                  | git gui citool --amend                                                                                                                                                                   | -| ggf                  | git push --force origin $(current_branch)                                                                                                                                                | -| ggfl                 | git push --force-with-lease origin $(current_branch)                                                                                                                                     | -| ggl                  | git pull origin $(current_branch)                                                                                                                                                        | -| ggp                  | git push origin $(current_branch)                                                                                                                                                        | -| ggpnp                | ggl && ggp                                                                                                                                                                               | -| ggpull               | git pull origin "$(git_current_branch)"                                                                                                                                                  | -| ggpur                | ggu                                                                                                                                                                                      | -| ggpush               | git push origin "$(git_current_branch)"                                                                                                                                                  | -| ggsup                | git branch --set-upstream-to=origin/$(git_current_branch)                                                                                                                                | -| ggu                  | git pull --rebase origin $(current_branch)                                                                                                                                               | -| gpsup                | git push --set-upstream origin $(git_current_branch)                                                                                                                                     | -| gpsupf               | git push --set-upstream origin $(git_current_branch) --force-with-lease --force-if-includes (git version >= 2.30)                                                                        | -| gpsupf               | git push --set-upstream origin $(git_current_branch) --force-with-lease (git version < 2.30)                                                                                             | -| ghh                  | git help                                                                                                                                                                                 | -| gignore              | git update-index --assume-unchanged                                                                                                                                                      | -| gignored             | git ls-files -v \| grep "^[[:lower:]]"                                                                                                                                                   | -| git-svn-dcommit-push | git svn dcommit && git push github $(git_main_branch):svntrunk                                                                                                                           | -| gk                   | gitk --all --branches &!                                                                                                                                                                 | -| gke                  | gitk --all $(git log --walk-reflogs --pretty=%h) &!                                                                                                                                      | -| gl                   | git pull                                                                                                                                                                                 | -| glg                  | git log --stat                                                                                                                                                                           | -| glgp                 | git log --stat --patch                                                                                                                                                                   | -| glgg                 | git log --graph                                                                                                                                                                          | -| glgga                | git log --graph --decorate --all                                                                                                                                                         | -| glgm                 | git log --graph --max-count=10                                                                                                                                                           | -| glo                  | git log --oneline --decorate                                                                                                                                                             | -| glol                 | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset'                                                                                   | -| glols                | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --stat                                                                            | -| 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                                                                      | -| glola                | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --all                                                                             | -| glog                 | git log --oneline --decorate --graph                                                                                                                                                     | -| gloga                | git log --oneline --decorate --graph --all                                                                                                                                               | -| glp                  | git log --pretty=\<format\>                                                                                                                                                              | -| gm                   | git merge                                                                                                                                                                                | -| gms                  | git merge --squash | -| gmom                 | git merge origin/$(git_main_branch)                                                                                                                                                      | -| gmtl                 | git mergetool --no-prompt                                                                                                                                                                | -| gmtlvim              | git mergetool --no-prompt --tool=vimdiff                                                                                                                                                 | -| gmum                 | git merge upstream/$(git_main_branch)                                                                                                                                                    | -| gma                  | git merge --abort                                                                                                                                                                        | -| gp                   | git push                                                                                                                                                                                 | -| gpd                  | git push --dry-run                                                                                                                                                                       | -| gpf                  | git push --force-with-lease --force-if-includes (git version >= 2.30)                                                                                                                    | -| gpf                  | git push --force-with-lease (git version < 2.30)                                                                                                                                         | -| gpf!                 | git push --force                                                                                                                                                                         | -| gpoat                | git push origin --all && git push origin --tags                                                                                                                                          | -| gpod                 | git push origin --delete                                                                                                                                                                 | -| gpr                  | git pull --rebase                                                                                                                                                                        | -| gpu                  | git push upstream                                                                                                                                                                        | -| gpv                  | git push --verbose                                                                                                                                                                       | -| gr                   | git remote                                                                                                                                                                               | -| gra                  | git remote add                                                                                                                                                                           | -| grb                  | git rebase                                                                                                                                                                               | -| grba                 | git rebase --abort                                                                                                                                                                       | -| grbc                 | git rebase --continue                                                                                                                                                                    | -| grbd                 | git rebase $(git_develop_branch)                                                                                                                                                         | -| grbi                 | git rebase --interactive                                                                                                                                                                 | -| grbm                 | git rebase $(git_main_branch)                                                                                                                                                            | -| grbom                | git rebase origin/$(git_main_branch)                                                                                                                                                     | -| grbo                 | git rebase --onto                                                                                                                                                                        | -| grbs                 | git rebase --skip                                                                                                                                                                        | -| grev                 | git revert                                                                                                                                                                               | -| grh                  | git reset                                                                                                                                                                                | -| grhh                 | git reset --hard                                                                                                                                                                         | -| groh                 | git reset origin/$(git_current_branch) --hard                                                                                                                                            | -| grm                  | git rm                                                                                                                                                                                   | -| grmc                 | git rm --cached                                                                                                                                                                          | -| grmv                 | git remote rename                                                                                                                                                                        | -| grrm                 | git remote remove                                                                                                                                                                        | -| grs                  | git restore                                                                                                                                                                              | -| grset                | git remote set-url                                                                                                                                                                       | -| grss                 | git restore --source                                                                                                                                                                     | -| grst                 | git restore --staged                                                                                                                                                                     | -| grt                  | cd "$(git rev-parse --show-toplevel \|\| echo .)"                                                                                                                                        | -| gru                  | git reset --                                                                                                                                                                             | -| grup                 | git remote update                                                                                                                                                                        | -| grv                  | git remote --verbose                                                                                                                                                                     | -| gsb                  | git status --short -b                                                                                                                                                                    | -| gsd                  | git svn dcommit                                                                                                                                                                          | -| gsh                  | git show                                                                                                                                                                                 | -| gsi                  | git submodule init                                                                                                                                                                       | -| gsps                 | git show --pretty=short --show-signature                                                                                                                                                 | -| gsr                  | git svn rebase                                                                                                                                                                           | -| gss                  | git status --short                                                                                                                                                                       | -| gst                  | git status                                                                                                                                                                               | -| gsta                 | git stash push (git version >= 2.13)                                                                                                                                                     | -| gsta                 | git stash save (git version < 2.13)                                                                                                                                                      | -| gstaa                | git stash apply                                                                                                                                                                          | -| gstc                 | git stash clear                                                                                                                                                                          | -| gstd                 | git stash drop                                                                                                                                                                           | -| gstl                 | git stash list                                                                                                                                                                           | -| gstp                 | git stash pop                                                                                                                                                                            | -| gsts                 | git stash show --text                                                                                                                                                                    | -| gstu                 | git stash --include-untracked                                                                                                                                                            | -| gstall               | git stash --all                                                                                                                                                                          | -| gsu                  | git submodule update                                                                                                                                                                     | -| gsw                  | git switch                                                                                                                                                                               | -| gswc                 | git switch -c                                                                                                                                                                            | -| gswm                 | git switch $(git_main_branch)                                                                                                                                                            | -| gswd                 | git switch $(git_develop_branch)                                                                                                                                                         | -| gts                  | git tag -s                                                                                                                                                                               | -| gtv                  | git tag \| sort -V                                                                                                                                                                       | -| gtl                  | gtl(){ git tag --sort=-v:refname -n --list ${1}\* }; noglob gtl                                                                                                                          | -| gunignore            | git update-index --no-assume-unchanged                                                                                                                                                   | -| gunwip               | git rev-list --max-count=1 --format="%s" HEAD \| grep -q "\-\-wip\-\-" && git reset HEAD~1                                                                                                   | -| gup                  | git pull --rebase                                                                                                                                                                        | -| gupv                 | git pull --rebase --verbose                                                                                                                                                              | -| gupa                 | git pull --rebase --autostash                                                                                                                                                            | -| gupav                | git pull --rebase --autostash --verbose                                                                                                                                                  | -| gupom                | git pull --rebase origin $(git_main_branch)                                                                                                                                              | -| gupomi               | git pull --rebase=interactive origin $(git_main_branch)                                                                                                                                  | -| glum                 | git pull upstream $(git_main_branch)                                                                                                                                                     | -| gluc                 | git pull upstream $(git_current_branch)                                                                                                                                                  | -| gwch                 | git whatchanged -p --abbrev-commit --pretty=medium                                                                                                                                       | -| 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                                                                                                                                                                                   | -| gamc                 | git am --continue                                                                                                                                                                        | -| gams                 | git am --skip                                                                                                                                                                            | -| gama                 | git am --abort                                                                                                                                                                           | -| gamscp               | git am --show-current-patch                                                                                                                                                              | -| gwt                  | git worktree                                                                                                                                                                             | -| gwtls                | git worktree list                                                                                                                                                                        | -| gwtmv                | git worktree move                                                                                                                                                                        | -| gwtrm                | git worktree remove                                                                                                                                                                      | +| 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                                                                                                                                                  | +| gbsr                 | git bisect reset                                                                                                                                                 | +| gbss                 | git bisect start                                                                                                                                                 | +| gbl                  | git blame -b -w                                                                                                                                                  | +| gb                   | git branch                                                                                                                                                       | +| gba                  | git branch --all                                                                                                                                                 | +| gbd                  | git branch --delete                                                                                                                                              | +| gbD                  | git branch --delete --force                                                                                                                                      | +| gbda                 | git branch --no-color --merged | grep -vE "^([+]|\s($(git_main_branch)|$(git_develop_branch))\s\*$)" | xargs git branch --delete 2>/dev/null | +| gbgd                 | git branch --no-color -vv                                                                                                                                        | +| gbgD                 | git branch --no-color -vv                                                                                                                                        | +| gbnm                 | git branch --no-merged                                                                                                                                           | +| gbr                  | git branch --remote                                                                                                                                              | +| ggsup                | git branch --set-upstream-to=origin/$(git_current_branch)                                                                                                        | +| gbg                  | git branch -vv                                                                                                                                                   | +| 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                  | git push --force-with-lease --force-if-includes (git version >= 2.30)                                                                                            | +| gpf                  | git push --force-with-lease (git version < 2.30)                                                                                                                 | +| ggfl                 | git push --force-with-lease origin $(current_branch)                                                                                                             | +| gpsup                | git push --set-upstream origin $(git_current_branch)                                                                                                             | +| gpsupf               | git push --set-upstream origin $(git_current_branch) --force-with-lease --force-if-includes (git version >= 2.30)                                                | +| gpsupf               | git push --set-upstream origin $(git_current_branch) --force-with-lease (git version < 2.30)                                                                     | +| 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                                                                                                                                                 | +| 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                 | git stash push (git version >= 2.13)                                                                                                                             | +| gsta                 | git stash save (git version < 2.13)                                                                                                                              | +| gsts                 | git stash show --text                                                                                                                                            | +| 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)                                                                                                                                    | +| 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 -Following the recent push for removing racially-charged words from our technical vocabulary, the git plugin favors using -a branch name other than `master`. In this case, we favor the shorter, neutral and descriptive term `main`. This means -that any aliases and functions that previously used `master`, will use `main` if that branch exists. We do this via the -function `git_main_branch`. +Following the recent push for removing racially-charged words from our technical vocabulary, the git plugin +favors using a branch name other than `master`. In this case, we favor the shorter, neutral and descriptive +term `main`. This means that any aliases and functions that previously used `master`, will use `main` if that +branch exists. We do this via the function `git_main_branch`.  ### Deprecated aliases -These are aliases that have been removed, renamed, or otherwise modified in a way that may, or may not, receive further support. +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                                           |  | :----- | :----------------------------------------------------- | :----------------------------------------------------- | @@ -238,23 +239,27 @@ These are aliases that have been removed, renamed, or otherwise modified in a wa  | Command                | Description                                                                                              |  | :--------------------- | :------------------------------------------------------------------------------------------------------- | -| `grename <old> <new>`  | Rename `old` branch to `new`, including in origin remote                                                 |  | current_branch         | Return the name of the current branch                                                                    | -| git_current_user_name  | Returns the `user.name` config value                                                                     | -| git_current_user_email | Returns the `user.email` config value                                                                    | -| git_main_branch        | Returns the name of the main branch: `main` if it exists, `master` otherwise                             | +| git_current_user_email | Returns the `user.email` config value (lives in lib/git.zsh)                                             | +| git_current_user_name  | Returns the `user.name` config value (lives in lib/git.zsh)                                              |  | git_develop_branch     | Returns the name of the develop 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>  | Rename `old` branch to `new`, including in origin remote                                                 |  ### Work in Progress (WIP) -These features allow to pause a branch development and switch to another one (_"Work in Progress"_,  or wip). When you want to go back to work, just unwip it. +These features allow to pause a branch development and switch to another one (_"Work in Progress"_, or wip). +When you want to go back to work, just unwip it.  | Command          | Description                                     |  | :--------------- | :---------------------------------------------- | -| work_in_progress | Echoes a warning if the current branch is a wip |  | gwip             | Commit wip branch                               |  | gunwip           | Uncommit wip branch                             |  | gunwipall        | Uncommit all recent `--wip--` commits           | +| work_in_progress | Echoes a warning if the current branch is a wip | + +Note that `gwip` and `gunwip` are effectivly alias, but are also documented here to group all related WIP +features.  ### Deprecated functions diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index d04edea5e..b321ce7b0 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -3,7 +3,9 @@ autoload -Uz is-at-least  git_version="${${(As: :)$(git version 2>/dev/null)}[3]}"  # -# Functions +# Functions Current +# (sorted alphabetically by function name) +# (order should follow README)  #  # The name of the current branch @@ -14,27 +16,17 @@ function current_branch() {    git_current_branch  } -# Pretty log messages -function _git_log_prettily(){ -  if ! [ -z $1 ]; then -    git log --pretty=$1 -  fi -} -compdef _git _git_log_prettily=git-log - -# Warn if the current branch is a WIP -function work_in_progress() { -  command git -c log.showSignature=false log -n 1 2>/dev/null | grep -q -- "--wip--" && echo "WIP!!" -} - -# Similar to `gunwip` but recursive "Unwips" all recent `--wip--` commits not just the last one -function gunwipall() { -  local _commit=$(git log --grep='--wip--' --invert-grep --max-count=1 --format=format:%H) -   -  # Check if a commit without "--wip--" was found and it's not the same as HEAD -  if [[ "$_commit" != "$(git rev-parse HEAD)" ]]; then -    git reset $_commit || return 1 -  fi +# Check for develop and similarly named branches +function git_develop_branch() { +  command git rev-parse --git-dir &>/dev/null || return +  local branch +  for branch in dev devel development; do +    if command git show-ref -q --verify refs/heads/$branch; then +      echo $branch +      return +    fi +  done +  echo develop  }  # Check if main exists and use instead of master @@ -50,64 +42,101 @@ function git_main_branch() {    echo master  } -# Check for develop and similarly named branches -function git_develop_branch() { -  command git rev-parse --git-dir &>/dev/null || return -  local branch -  for branch in dev devel development; do -    if command git show-ref -q --verify refs/heads/$branch; then -      echo $branch -      return -    fi -  done -  echo develop +function grename() { +  if [[ -z "$1" || -z "$2" ]]; then +    echo "Usage: $0 old_branch new_branch" +    return 1 +  fi + +  # Rename branch locally +  git branch -m "$1" "$2" +  # Rename branch in origin remote +  if git push origin :"$1"; then +    git push --set-upstream origin "$2" +  fi +} + +# +# Functions Work in Progress (WIP) +# (sorted alphabetically by function name) +# (order should follow README) +# + +# Similar to `gunwip` but recursive "Unwips" all recent `--wip--` commits not just the last one +function gunwipall() { +  local _commit=$(git log --grep='--wip--' --invert-grep --max-count=1 --format=format:%H) + +  # Check if a commit without "--wip--" was found and it's not the same as HEAD +  if [[ "$_commit" != "$(git rev-parse HEAD)" ]]; then +    git reset $_commit || return 1 +  fi +} + +# Warn if the current branch is a WIP +function work_in_progress() { +  command git -c log.showSignature=false log -n 1 2>/dev/null | grep -q -- "--wip--" && echo "WIP!!"  }  #  # Aliases -# (sorted alphabetically) +# (sorted alphabetically by command) +# (order should follow README) +# (in some cases force the alisas order to match README, like for example gke and gk)  # -alias g='git' +alias grt='cd "$(git rev-parse --show-toplevel || echo .)"' +function ggpnp() { +  if [[ "$#" == 0 ]]; then +    ggl && ggp +  else +    ggl "${*}" && ggp "${*}" +  fi +} +compdef _git ggpnp=git-checkout + +alias ggpur='ggu' +alias g='git'  alias ga='git add'  alias gaa='git add --all'  alias gapa='git add --patch'  alias gau='git add --update'  alias gav='git add --verbose' +alias gwip='git add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit --no-verify --no-gpg-sign --message "--wip-- [skip ci]"' +alias gam='git am' +alias gama='git am --abort' +alias gamc='git am --continue' +alias gamscp='git am --show-current-patch' +alias gams='git am --skip'  alias gap='git apply'  alias gapt='git apply --3way' - +alias gbs='git bisect' +alias gbsb='git bisect bad' +alias gbsg='git bisect good' +alias gbsr='git bisect reset' +alias gbss='git bisect start' +alias gbl='git blame -b -w'  alias gb='git branch'  alias gba='git branch --all'  alias gbd='git branch --delete' -alias gbda='git branch --no-color --merged | command grep -vE "^([+*]|\s*($(git_main_branch)|$(git_develop_branch))\s*$)" | command xargs git branch --delete 2>/dev/null'  alias gbD='git branch --delete --force' -alias gbg='git branch -vv | grep ": gone\]"' +alias gbda='git branch --no-color --merged | command grep -vE "^([+*]|\s*($(git_main_branch)|$(git_develop_branch))\s*$)" | command xargs git branch --delete 2>/dev/null'  alias gbgd='git branch --no-color -vv | grep ": gone\]" | awk '"'"'{print $1}'"'"' | xargs git branch -d'  alias gbgD='git branch --no-color -vv | grep ": gone\]" | awk '"'"'{print $1}'"'"' | xargs git branch -D' -alias gbl='git blame -b -w'  alias gbnm='git branch --no-merged'  alias gbr='git branch --remote' -alias gbs='git bisect' -alias gbsb='git bisect bad' -alias gbsg='git bisect good' -alias gbsr='git bisect reset' -alias gbss='git bisect start' - -alias gc='git commit --verbose' -alias gc!='git commit --verbose --amend' -alias gcn!='git commit --verbose --no-edit --amend' -alias gca='git commit --verbose --all' -alias gca!='git commit --verbose --all --amend' -alias gcan!='git commit --verbose --all --no-edit --amend' -alias gcans!='git commit --verbose --all --signoff --no-edit --amend' -alias gcam='git commit --all --message' -alias gcsm='git commit --signoff --message' -alias gcas='git commit --all --signoff' -alias gcasm='git commit --all --signoff --message' +alias ggsup='git branch --set-upstream-to=origin/$(git_current_branch)' +alias gbg='git branch -vv | grep ": gone\]"' +alias gco='git checkout' +alias gcor='git checkout --recurse-submodules'  alias gcb='git checkout -b' -alias gcf='git config --list' +alias gcd='git checkout $(git_develop_branch)' +alias gcm='git checkout $(git_main_branch)' +alias gcp='git cherry-pick' +alias gcpa='git cherry-pick --abort' +alias gcpc='git cherry-pick --continue' +alias gclean='git clean --interactive -d' +alias gcl='git clone --recurse-submodules'  function gccd() {    command git clone --recurse-submodules "$@" @@ -115,61 +144,97 @@ function gccd() {  }  compdef _git gccd=git-clone -alias gcl='git clone --recurse-submodules' -alias gclean='git clean --interactive -d' -alias gpristine='git reset --hard && git clean --force -dfx' -alias gcm='git checkout $(git_main_branch)' -alias gcd='git checkout $(git_develop_branch)' -alias gcmsg='git commit --message' -alias gco='git checkout' -alias gcor='git checkout --recurse-submodules' -alias gcount='git shortlog --summary --numbered' -alias gcp='git cherry-pick' -alias gcpa='git cherry-pick --abort' -alias gcpc='git cherry-pick --continue' +alias gcam='git commit --all --message' +alias gcas='git commit --all --signoff' +alias gcasm='git commit --all --signoff --message'  alias gcs='git commit --gpg-sign'  alias gcss='git commit --gpg-sign --signoff'  alias gcssm='git commit --gpg-sign --signoff --message' - +alias gcmsg='git commit --message' +alias gcsm='git commit --signoff --message' +alias gc='git commit --verbose' +alias gca='git commit --verbose --all' +alias gca!='git commit --verbose --all --amend' +alias gcan!='git commit --verbose --all --no-edit --amend' +alias gcans!='git commit --verbose --all --signoff --no-edit --amend' +alias gc!='git commit --verbose --amend' +alias gcn!='git commit --verbose --no-edit --amend' +alias gcf='git config --list' +alias gdct='git describe --tags $(git rev-list --tags --max-count=1)'  alias gd='git diff'  alias gdca='git diff --cached'  alias gdcw='git diff --cached --word-diff' -alias gdct='git describe --tags $(git rev-list --tags --max-count=1)'  alias gds='git diff --staged' -alias gdt='git diff-tree --no-commit-id --name-only -r' -alias gdup='git diff @{upstream}'  alias gdw='git diff --word-diff' +function gdv() { git diff -w "$@" | view - } +compdef _git gdv=git-diff + +alias gdup='git diff @{upstream}' +  function gdnolock() {    git diff "$@" ":(exclude)package-lock.json" ":(exclude)*.lock"  }  compdef _git gdnolock=git-diff -function gdv() { git diff -w "$@" | view - } -compdef _git gdv=git-diff - +alias gdt='git diff-tree --no-commit-id --name-only -r'  alias gf='git fetch'  # --jobs=<n> was added in git 2.8  is-at-least 2.8 "$git_version" \    && alias gfa='git fetch --all --prune --jobs=10' \    || alias gfa='git fetch --all --prune'  alias gfo='git fetch origin' - -alias gfg='git ls-files | grep' -  alias gg='git gui citool'  alias gga='git gui citool --amend' +alias ghh='git help' +alias glgg='git log --graph' +alias glgga='git log --graph --decorate --all' +alias glgm='git log --graph --max-count=10' +alias glods='git log --graph --pretty="%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset" --date=short' +alias glod='git log --graph --pretty="%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset"' +alias glola='git log --graph --pretty="%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset" --all' +alias glols='git log --graph --pretty="%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset" --stat' +alias glol='git log --graph --pretty="%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset"' +alias glo='git log --oneline --decorate' +alias glog='git log --oneline --decorate --graph' +alias gloga='git log --oneline --decorate --graph --all' -function ggf() { -  [[ "$#" != 1 ]] && local b="$(git_current_branch)" -  git push --force origin "${b:=$1}" +# Pretty log messages +function _git_log_prettily(){ +  if ! [ -z $1 ]; then +    git log --pretty=$1 +  fi  } -compdef _git ggf=git-checkout -function ggfl() { +compdef _git _git_log_prettily=git-log + +alias glp='_git_log_prettily' +alias glg='git log --stat' +alias glgp='git log --stat --patch' +alias gignored='git ls-files -v | grep "^[[:lower:]]"' +alias gfg='git ls-files | grep' +alias gm='git merge' +alias gma='git merge --abort' +alias gms="git merge --squash" +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' + +function ggu() {    [[ "$#" != 1 ]] && local b="$(git_current_branch)" -  git push --force-with-lease origin "${b:=$1}" +  git pull --rebase origin "${b:=$1}"  } -compdef _git ggfl=git-checkout +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 ggpull='git pull origin "$(git_current_branch)"'  function ggl() {    if [[ "$#" != 0 ]] && [[ "$#" != 1 ]]; then @@ -181,184 +246,115 @@ function ggl() {  }  compdef _git ggl=git-checkout -function ggp() { -  if [[ "$#" != 0 ]] && [[ "$#" != 1 ]]; then -    git push origin "${*}" -  else -    [[ "$#" == 0 ]] && local b="$(git_current_branch)" -    git push origin "${b:=$1}" -  fi -} -compdef _git ggp=git-checkout +alias gluc='git pull upstream $(git_current_branch)' +alias glum='git pull upstream $(git_main_branch)' +alias gp='git push' +alias gpd='git push --dry-run' -function ggpnp() { -  if [[ "$#" == 0 ]]; then -    ggl && ggp -  else -    ggl "${*}" && ggp "${*}" -  fi +function ggf() { +  [[ "$#" != 1 ]] && local b="$(git_current_branch)" +  git push --force origin "${b:=$1}"  } -compdef _git ggpnp=git-checkout +compdef _git ggf=git-checkout -function ggu() { +alias gpf!='git push --force' +is-at-least 2.30 "$git_version" \ +  && alias gpf='git push --force-with-lease --force-if-includes' \ +  || alias gpf='git push --force-with-lease' + +function ggfl() {    [[ "$#" != 1 ]] && local b="$(git_current_branch)" -  git pull --rebase origin "${b:=$1}" +  git push --force-with-lease origin "${b:=$1}"  } -compdef _git ggu=git-checkout - -alias ggpur='ggu' -alias ggpull='git pull origin "$(git_current_branch)"' -alias ggpush='git push origin "$(git_current_branch)"' +compdef _git ggfl=git-checkout -alias ggsup='git branch --set-upstream-to=origin/$(git_current_branch)'  alias gpsup='git push --set-upstream origin $(git_current_branch)'  is-at-least 2.30 "$git_version" \    && alias gpsupf='git push --set-upstream origin $(git_current_branch) --force-with-lease --force-if-includes' \    || alias gpsupf='git push --set-upstream origin $(git_current_branch) --force-with-lease' - -alias ghh='git help' - -alias gignore='git update-index --assume-unchanged' -alias gignored='git ls-files -v | grep "^[[:lower:]]"' -alias git-svn-dcommit-push='git svn dcommit && git push github $(git_main_branch):svntrunk' - -alias gk='\gitk --all --branches &!' -alias gke='\gitk --all $(git log --walk-reflogs --pretty=%h) &!' - -alias gl='git pull' -alias glg='git log --stat' -alias glgp='git log --stat --patch' -alias glgg='git log --graph' -alias glgga='git log --graph --decorate --all' -alias glgm='git log --graph --max-count=10' -alias glo='git log --oneline --decorate' -alias glol="git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset'" -alias glols="git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --stat" -alias glod="git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset'" -alias glods="git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' --date=short" -alias glola="git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --all" -alias glog='git log --oneline --decorate --graph' -alias gloga='git log --oneline --decorate --graph --all' -alias glp="_git_log_prettily" - -alias gm='git merge' -alias gmom='git merge origin/$(git_main_branch)' -alias gmtl='git mergetool --no-prompt' -alias gmtlvim='git mergetool --no-prompt --tool=vimdiff' -alias gmum='git merge upstream/$(git_main_branch)' -alias gma='git merge --abort' -alias gms="git merge --squash" - -alias gp='git push' -alias gpd='git push --dry-run' -is-at-least 2.30 "$git_version" \ -  && alias gpf='git push --force-with-lease --force-if-includes' \ -  || alias gpf='git push --force-with-lease' -alias gpf!='git push --force' +alias gpv='git push --verbose'  alias gpoat='git push origin --all && git push origin --tags'  alias gpod='git push origin --delete' -alias gpr='git pull --rebase' -alias gpu='git push upstream' -alias gpv='git push --verbose' +alias ggpush='git push origin "$(git_current_branch)"' -alias gr='git remote' -alias gra='git remote add' +function ggp() { +  if [[ "$#" != 0 ]] && [[ "$#" != 1 ]]; then +    git push origin "${*}" +  else +    [[ "$#" == 0 ]] && local b="$(git_current_branch)" +    git push origin "${b:=$1}" +  fi +} +compdef _git ggp=git-checkout + +alias gpu='git push upstream'  alias grb='git rebase'  alias grba='git rebase --abort'  alias grbc='git rebase --continue' -alias grbd='git rebase $(git_develop_branch)'  alias grbi='git rebase --interactive' -alias grbm='git rebase $(git_main_branch)' -alias grbom='git rebase origin/$(git_main_branch)'  alias grbo='git rebase --onto'  alias grbs='git rebase --skip' -alias grev='git revert' +alias grbd='git rebase $(git_develop_branch)' +alias grbm='git rebase $(git_main_branch)' +alias grbom='git rebase origin/$(git_main_branch)' +alias gr='git remote' +alias grv='git remote --verbose' +alias gra='git remote add' +alias grrm='git remote remove' +alias grmv='git remote rename' +alias grset='git remote set-url' +alias grup='git remote update'  alias grh='git reset' +alias gru='git reset --'  alias grhh='git reset --hard' +alias gpristine='git reset --hard && git clean --force -dfx'  alias groh='git reset origin/$(git_current_branch) --hard' -alias grm='git rm' -alias grmc='git rm --cached' -alias grmv='git remote rename' -alias grrm='git remote remove'  alias grs='git restore' -alias grset='git remote set-url'  alias grss='git restore --source'  alias grst='git restore --staged' -alias grt='cd "$(git rev-parse --show-toplevel || echo .)"' -alias gru='git reset --' -alias grup='git remote update' -alias grv='git remote --verbose' - -alias gsb='git status --short --branch' -alias gsd='git svn dcommit' +alias gunwip='git rev-list --max-count=1 --format="%s" HEAD | grep -q "\--wip--" && git reset HEAD~1' +alias grev='git revert' +alias grm='git rm' +alias grmc='git rm --cached' +alias gcount='git shortlog --summary --numbered'  alias gsh='git show' -alias gsi='git submodule init'  alias gsps='git show --pretty=short --show-signature' -alias gsr='git svn rebase' -alias gss='git status --short' -alias gst='git status' - -# use the default stash push on git 2.13 and newer -is-at-least 2.13 "$git_version" \ -  && alias gsta='git stash push' \ -  || alias gsta='git stash save' - +alias gstall='git stash --all'  alias gstaa='git stash apply'  alias gstc='git stash clear'  alias gstd='git stash drop'  alias gstl='git stash list'  alias gstp='git stash pop' +# use the default stash push on git 2.13 and newer +is-at-least 2.13 "$git_version" \ +  && alias gsta='git stash push' \ +  || alias gsta='git stash save'  alias gsts='git stash show --text' -alias gstu='gsta --include-untracked' -alias gstall='git stash --all' +alias gst='git status' +alias gss='git status --short' +alias gsb='git status --short --branch' +alias gsi='git submodule init'  alias gsu='git submodule update' +alias gsd='git svn dcommit' +alias git-svn-dcommit-push='git svn dcommit && git push github $(git_main_branch):svntrunk' +alias gsr='git svn rebase'  alias gsw='git switch'  alias gswc='git switch --create' -alias gswm='git switch $(git_main_branch)'  alias gswd='git switch $(git_develop_branch)' - +alias gswm='git switch $(git_main_branch)'  alias gts='git tag --sign'  alias gtv='git tag | sort -V' -alias gtl='gtl(){ git tag --sort=-v:refname -n --list "${1}*" }; noglob gtl' - +alias gignore='git update-index --assume-unchanged'  alias gunignore='git update-index --no-assume-unchanged' -alias gunwip='git rev-list --max-count=1 --format="%s" HEAD | grep -q "\--wip--" && git reset HEAD~1' -alias gup='git pull --rebase' -alias gupv='git pull --rebase --verbose' -alias gupa='git pull --rebase --autostash' -alias gupav='git pull --rebase --autostash --verbose' -alias gupom='git pull --rebase origin $(git_main_branch)' -alias gupomi='git pull --rebase=interactive origin $(git_main_branch)' -alias glum='git pull upstream $(git_main_branch)' -alias gluc='git pull upstream $(git_current_branch)' -  alias gwch='git whatchanged -p --abbrev-commit --pretty=medium' -alias gwip='git add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit --no-verify --no-gpg-sign --message "--wip-- [skip ci]"' -  alias gwt='git worktree'  alias gwta='git worktree add'  alias gwtls='git worktree list'  alias gwtmv='git worktree move'  alias gwtrm='git worktree remove' - -alias gam='git am' -alias gamc='git am --continue' -alias gams='git am --skip' -alias gama='git am --abort' -alias gamscp='git am --show-current-patch' - -function grename() { -  if [[ -z "$1" || -z "$2" ]]; then -    echo "Usage: $0 old_branch new_branch" -    return 1 -  fi - -  # Rename branch locally -  git branch -m "$1" "$2" -  # Rename branch in origin remote -  if git push origin :"$1"; then -    git push --set-upstream origin "$2" -  fi -} +alias gstu='gsta --include-untracked' +alias gtl='gtl(){ git tag --sort=-v:refname -n --list "${1}*" }; noglob gtl' +alias gk='\gitk --all --branches &!' +alias gke='\gitk --all $(git log --walk-reflogs --pretty=%h) &!'  unset git_version | 
