一台机器上是否可以使用一个子模块URL,而另一台机器上可以使用另一个子模块URL?
假设我有一台机器已经对中央服务器上的git存储库进行SSH访问的身份验证,而另一台计算机没有该服务器的访问权限。在经过身份验证的计算机上,我曾经git-daemon
将存储库共享给未经身份验证的计算机。
这里的问题是,我克隆的存储库具有几个子模块依赖项,所有这些依赖项都是服务器上需要身份验证SSH访问的存储库。在这种情况下,我还将所有子模块存储在经过身份验证的机器上,因此我可以从以下位置简单地更新.gitmodules文件:
[submodule "@sub-a"]
url = ssh://<authenticated-url>/<repo>
branch = master
至...
[submodule "@sub-a"]
url = git://<ip-of-authenticated-machine>/<repo>
branch = master
然后运行git submodule sync
,git submodule update --init -r
将直接从经过身份验证的计算机而不是从服务器获取子模块。
那么我的问题是,是否有任何便携式方法可以做到这一点,以便我可以在机器之间自由移动并期望正确的git-submodule
行为?
您可以在中更改子模块属性.git/config
。根据您的情况,您可以url
从[submodule "<name>"]
部分更改。请记住,这些属性将无法生存git submodule deinit
,git submodule sync
详细
git submodule deinit # deinitialize submodule, relevant section in .git/config will be removed
rm -fdr .git/modules/ # clear submodules' local repos
git submodule init # relevant section will be copied (partially) from .gitmodules to .git/config
... #Edit .git/config with new url for submodule
git submodule update # submodule will be updated from new url.
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句