浏览代码

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>
fanuch 4 年之前
父节点
当前提交
714399a7c3
共有 2 个文件被更改,包括 8 次插入0 次删除
  1. 1 0
      plugins/git/README.md
  2. 7 0
      plugins/git/git.plugin.zsh

+ 1 - 0
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)                                                                                                  |

+ 7 - 0
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'