【发布时间】:2011-12-01 16:16:56
【问题描述】:
我使用 git (TortoiseGit 1.7.5.0) 并有一个带有子模块的仓库,这些子模块通过绝对路径以某种方式引用:
[submodule "common/sub"]
path = common/sub
url = ssh://localhost/lib/common/sub
虽然超级存储库被克隆为 ssh://user@localhost/super,但用户名不应进入每个子模块 url,因为不同的用户应使用自己的凭据处理代码。
当拉/推子模块时,我必须输入我的登录名(不需要密码,因为我正在运行 Pageant):用户名没有通过命令行传递给 TortoisePlink。
在网上冲浪时,我发现有几篇文章提到子模块的相对 url,但显然这种方法不适用于 TortoiseGit:我尝试了几种格式 - 程序经常崩溃。 无论如何,我成功地采用了如下格式:
[submodule "common/sub"]
path = common/sub
url = ../common/sub
文件.git/config 填充了正确的绝对网址,但之后TortoiseGit 就崩溃了...
我查看了其他选项,包括:
关注subtree merge strategy(建议here)。 这看起来是个不错的方法。
一种可行的解决方法是使用“非标准”URL 初始化子模块,如 git Submodules Explained 末尾所述(链接位于 here)。
我想一些更简单的解决方法可能对我的情况有所帮助(例如在某些本地配置文件或通过命令行提供默认登录),但我还没有找到任何可行的提示。
问题:在绝对网址中没有硬编码用户名的情况下,使用子模块的最简单方法是什么?
【问题讨论】:
-
在此处查看解决方案:stackoverflow.com/questions/6031494/…
标签: git tortoisegit git-submodules