Git 别名 cd 进入新克隆的仓库

Git 别名 cd 进入新克隆的仓库

我有一些有用的 git 别名,大部分来自这里:

https://haacked.com/archive/2014/07/28/github-flow-aliases/#the-list

不过,我忽略了一件事,那就是每当我克隆一个存储库时,我总会 100% 想要立即进入该文件夹。

有没有办法创建这个别名?

我假设它将涉及获取 STDOUT 中返回的第一行并使用 regex 对其进行解析Cloning into '(.+?)'...,然后 cd 进入该文件夹。

答案1

在现代 shell 中,shellfunction可能比 更合适(除非你正在使用)。对于 ZSH,这可能看起来像这样:aliastcsh

function clonecd {
  local dir
  if [[ $# -eq 2 ]]; then
    git clone -- $1 $2 || return
    dir=$2
  else
    git clone -- $1 || return
    dir=${1:t}
  fi
  builtin cd $dir
}

它允许clonecd git://.../somerepoclonecd git://.../somerepo someotherdir形式,以及一些各种错误检查。

POSIX shell 则bash需要引用变量(git clone -- "$1"等等避免愚蠢${1:t}),并且可能除了提取存储库路径的尾部之外还有其他方法。

相关内容