Exp*_*lls 26 git github git-submodules
我创建了一个项目submodule
并将其放在Github上.
我创建了另一个项目,supermodule
然后做了这个:
cd supermodule
git init
mkdir lib
git clone git://github.com/tandu/submodule lib/submodule
git submodule add ./lib/submodule lib/submodule
Run Code Online (Sandbox Code Playgroud)
这工作正常,但在网站上,它在查看文件时找不到子模块的链接(实际上它只是说"永远加载提交数据").子模块文件夹本身是正确的origin
.
显然,我应该做的是
...
mkdir lib
git submodule add git://github.com/tandu/submodule lib
Run Code Online (Sandbox Code Playgroud)
......但现在已经太晚了.如何正确指向此项目中的子模块origin
?
Mic*_*ild 54
这显然非常依赖于您使用的git版本.
url
条目.[submodule "<dirname>"]
.gitmodules
url
条目.[submodule "<dirname>"]
.git/config
url
子模块本身的配置.config
文件的位置取决于版本.旧版本有<dirname>/.git/config
,新版本.git/modules/<dirname>/config
.但是,您始终可以使用以下命令:cd <dirname>
git config remote.origin.url <new_url>
Run Code Online (Sandbox Code Playgroud)
Luk*_*lek 20
在其他问题中,我找到了更现代的 Git 版本(2.25)的答案
git submodule [--quiet] set-url [--] <path> <newurl>
假设您的external/foo-lib
origins目录中有子模块https://github.com/example-user/foo-lib.git
,并且您想将其更改为您的 fork https://github.com/your-account/foo-lib.git
,然后在 git 项目类型的根目录中:
git submodule set-url external/foo-lib https://github.com/your-account/foo-lib.git