我有一些有用的 git 别名,大部分来自这里:
https://haacked.com/archive/2014/07/28/github-flow-aliases/#the-list
不过,我忽略了一件事,那就是每当我克隆一个存储库时,我总会 100% 想要立即进入该文件夹。
有没有办法创建这个别名?
我假设它将涉及获取 STDOUT 中返回的第一行并使用 regex 对其进行解析Cloning into '(.+?)'...
,然后 cd 进入该文件夹。
答案1
在现代 shell 中,shellfunction
可能比 更合适(除非你正在使用)。对于 ZSH,这可能看起来像这样:alias
tcsh
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://.../somerepo
和clonecd git://.../somerepo someotherdir
形式,以及一些各种错误检查。
POSIX shell 则bash
需要引用变量(git clone -- "$1"
等等避免愚蠢${1:t}
),并且可能除了提取存储库路径的尾部之外还有其他方法。