2012-04-25 97 views
23

我创建了一个项目submodule并将它放在Github上。git:克隆子模块的变化起源

我创造了另一个项目,supermodule,然后这样做:

cd supermodule 
git init 
mkdir lib 
git clone git://github.com/tandu/submodule lib/submodule 
git submodule add ./lib/submodule lib/submodule 

这工作得很好,但在网站上,查看文件(实际上是当它不能找到链接到其子模块只是说“永远加载提交数据”)。子模块文件夹本身具有正确的origin

很显然,我应该做的是

... 
mkdir lib 
git submodule add git://github.com/tandu/submodule lib 

...但现在已经太晚了。我怎样才能让这个项目中的子模块正确指向origin

回答

41

这显然是非常依赖于你使用的git版本。

  1. 如果存在,更改.gitmodules文件的[submodule "<dirname>"]部分url项。
  2. 如果存在,请更改.git/config文件的[submodule "<dirname>"]部分中的url条目。在子模块本身的配置中更改urlconfig文件的位置取决于版本。较旧的版本在<dirname>/.git/config,较新的版本在.git/modules/<dirname>/config。但是,您可以始终低于命令使用方法:
cd <dirname> 
git config remote.origin.url <new_url> 
+5

与当前版本的git的(2.1.0),做'git的子模块同步--recursive',就足以让我更新到子模块'起源'远程。 – desseim 2014-09-11 09:29:56