git回购有一个路径,其中不仅包括回购名称。我想知道是否有一种方法可以自动克隆一个存储库并包含完整的路径,这将帮助我对项目进行分类。克隆完整路径回购
例如,我想git clone [email protected]:scrooloose/nerdcommenter.git
克隆到./scrooloose/nerdcommenter/
而不是只是./nerdcommenter/
。
是否有一个标志git clone
为此,或者我只需要手动执行它?
git回购有一个路径,其中不仅包括回购名称。我想知道是否有一种方法可以自动克隆一个存储库并包含完整的路径,这将帮助我对项目进行分类。克隆完整路径回购
例如,我想git clone [email protected]:scrooloose/nerdcommenter.git
克隆到./scrooloose/nerdcommenter/
而不是只是./nerdcommenter/
。
是否有一个标志git clone
为此,或者我只需要手动执行它?
假设你有[email protected]:scrooloose/nerdcommenter.git
回购,你可以简单地做:
$ mkdir -p scrooloose/nerdcommenter
$ git clone [email protected]:scrooloose/nerdcommenter.git scrooloose/nerdcommenter
如果真的需要它可以很容易地编写脚本。
在git中拥有这样的逻辑没有太大的好处,因为您可以链接其他工具,如awk
以满足您的需求。例如shell脚本这样做,说clone.sh
:
#/bin/bash
set -e
DST=`echo $1 | awk 'i=index($0,":") {print substr($0,i+1,length($0)-i-4)}'`
mkdir -p $DST && git clone $1 $DST
然后
./clone.sh [email protected]:scrooloose/nerdcommenter.git
和你有好处。
一个对组织和维护存储库更新非常有用的工具是mr(http://myrepos.branchable.com/)。有关详细信息,请参阅此博客文章http://odinodin.no/2013-11-23-multiple-repositories/
您需要创建一个配置文件,指明您的repo的位置(未必创建一个路径),并且mr将创建该路径并克隆您的repo。它也将帮助您保持最新的许多回购。
对,我知道。我想知道的是,如果这可以完成,而无需手动创建目录或编写脚本和别名'git clone'。 – ewok
不,但您可以轻松编写简短的bash脚本来提取目录,生成,创建,猜测或制作目标目录。这种类型的逻辑实际上没有任何意义 –
请参阅使用示例bash脚本编辑答案。 –