繁体   English   中英

git:更改克隆子模块的来源

[英]git: change origin of cloned submodule

我创建了一个项目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

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

显然,我应该做的是

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

……但现在为时已晚。 我怎样才能让这个项目中的子模块正确指向origin

这显然在很大程度上取决于您使用的 git 版本。

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

在其他问题中,我找到了更现代的 Git 版本(2.25)的答案

git submodule [--quiet] set-url [--] <path> <newurl>

假设您在目录external/foo-lib有子模块,其来源是https://github.com/example-user/foo-lib.git并且您想将其更改为您的分支https://github.com/your-account/foo-lib.git然后在 git 项目类型的根目录中:

git submodule set-url external/foo-lib https://github.com/your-account/foo-lib.git

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM