git clone 和 cd 进去

Ami*_*ani 2 linux git bash

如果我想在一行中创建一个目录并将目录更改为所有目录,我可以执行以下操作:

mkdir dir_name && cd $_

我怎样才能做同样的事情git clone

命令 ,git clone repo_url && cd $_显然不起作用,因为没有这样的目录repo_url. 但是有可能在一行中完成吗?

Nul*_*Dev 5

如果您想自动查找名称,您可以尝试以下操作:

git clone http://repo_url.git && cd "$(basename "$_" .git)"
Run Code Online (Sandbox Code Playgroud)

这样您就不必将文件夹名称指定为git.

  • 我在另一个答案中这样做了;“$_”指的是上一个命令的最后一个参数,并且该答案使所需的目录名称成为“git”命令的最后一个参数,这样您在问题中询问的用法就可以工作。(原来的版本也可以正常工作,但只需要输入两次目录名称。) (2认同)
  • 这只是一个很好的做法,以防完整目录名包含任何不加引号时将受到 shell 处理的字符。(实际上,`$_`本身也应该被引用;我会解决这个问题。) (2认同)

Fro*_*don 5

您可以为 git clone 命令添加目录名称:

git clone repo_url my_repo_dirname && cd "$_"
Run Code Online (Sandbox Code Playgroud)


Sy *_*Ker 5

我真的不喜欢具有特殊名称的别名,例如cdlsgitclone因为在新系统上我不记得原始命令。这就是为什么我喜欢以下别名解决方案:

## git extra features 
# - clone + cd 
function git() {
    if [ $1 = "clone" ]
    then 
        command git $@ && cd "$(basename "$_" .git)"
    else
        command git $@
    fi
}
Run Code Online (Sandbox Code Playgroud)

using 调用command原始git命令,而不是文件中的此命令~/.bashrc