summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugins/git/README.md1
-rw-r--r--plugins/git/git.plugin.zsh7
2 files changed, 8 insertions, 0 deletions
diff --git a/plugins/git/README.md b/plugins/git/README.md
index 05ef25099..b68dc552e 100644
--- a/plugins/git/README.md
+++ b/plugins/git/README.md
@@ -47,6 +47,7 @@ plugins=(... git)
| gcb | git checkout -b |
| gcf | git config --list |
| gcl | git clone --recurse-submodules |
+| gccd | git clone --recurse-submodules "$@" && cd "$(basename $_ .git)" |
| gclean | git clean -id |
| gpristine | git reset --hard && git clean -dffx |
| gcm | git checkout $(git_main_branch) |
diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh
index 11dff99d9..f2431fde5 100644
--- a/plugins/git/git.plugin.zsh
+++ b/plugins/git/git.plugin.zsh
@@ -97,6 +97,13 @@ alias gcas='git commit -a -s'
alias gcasm='git commit -a -s -m'
alias gcb='git checkout -b'
alias gcf='git config --list'
+
+function gccd() {
+ command git clone --recurse-submodules "$@"
+ [[ -d "$_" ]] && cd "$_" || cd "${${_:h}%.git}"
+}
+compdef _git gccd=git-clone
+
alias gcl='git clone --recurse-submodules'
alias gclean='git clean -id'
alias gpristine='git reset --hard && git clean -dffx'