summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorfanuch <fanuch@gmail.com>2019-10-06 13:19:14 +1100
committerMarc Cornellà <hello@mcornella.com>2021-10-04 17:31:05 +0200
commit714399a7c33963384ef7f21ce21f6d134416f9aa (patch)
tree653522af045ebe84ae2057e64eb243fb47dffc43 /plugins
parent568584a9f5f42d51a08de8b71347f6463b9211e6 (diff)
downloadzsh-714399a7c33963384ef7f21ce21f6d134416f9aa.tar.gz
zsh-714399a7c33963384ef7f21ce21f6d134416f9aa.tar.bz2
zsh-714399a7c33963384ef7f21ce21f6d134416f9aa.zip
feat(git): add `gccd` alias to clone and cd into git repository (#8220)
Fixes #8216 Closes #8220 Co-authored-by: Nelson Estevão <nelsonmestevao@gmail.com>
Diffstat (limited to 'plugins')
-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'