2014-10-06 63 views
9

我想补充一个git子模块有不同的名称,如工作:`--name`选项不能用`git的子模块add`命令

git submodule add --name foo [email protected]:ironsand/cookbook-foo.git 

我想创建一个名为foo一个git子模块的目录,但该存储库是使用名称cookbook-foo创建的。

很可能我做错了什么,但我不知道什么是错的。

如何更改git子模块目录的名称?

回答

10

不要混为一谈路径名称的子模块的。你想跑

git submodule add [email protected]:ironsand/cookbook-foo.git foo/ 

改为。有关更多详细信息,请参阅git-submodule手册页;这里的相关git-submodule语法

git submodule [--name <name>] <repository> [<path>] 

哪里..​​.

  • <repository>是新的子模块的起源库的URL。
  • <path>(如果指定)确定(超级项目的根目录的)子目录的名称以接收生活在<repository>处的回购的克隆;如果未指定,<path>默认为该回购的名称。
  • <name>是子模块的名称,即出现在.gitmodules文件的相应子模块条目中的名称;如果未指定,<name>只是默认为<path>

这里是一个玩具例子来明确概念:

$ cd ~/Desktop 
$ mkdir test 
$ cd test 
$ git init 
$ git submodule add --name brutus https://github.com/bradfitz/gitbrute bradfitz_bruteforce 
$ ls -a 
.   .git   bradfitz_bruteforce 
..   .gitmodules 
$ cat .gitmodules 
[submodule "brutus"] 
    path = bradfitz_bruteforce 
    url = https://github.com/bradfitz/gitbrute 
0

名称选项有效,查看您的.gitmodules文件。不确定它在那里是什么;我不使用遥控器。

修改路径类似于git init

git submodule add [email protected]:repo.git mydirectoryname