我使用 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 就崩溃了......
我已经审查了其他选项,包括:
use gitolite(如提议的here https://stackoverflow.com/questions/6594005/how-to-work-with-submodules-and-n-tiers-git-repository-strategies) or sdorra(如提议的here https://stackoverflow.com/questions/7797029/git-submodules-as-part-of-a-build),但这看起来是一个过于复杂的解决方案。
follow 子树合并策略 http://schacon.github.com/git/howto/using-merge-subtree.html(如提议的here https://stackoverflow.com/questions/1596822/git-submodules-workflow)。
这看起来是一个不错的方法。
解决方法之一是使用“非标准”URL 初始化子模块正如末尾所解释的git 子模块解释 http://longair.net/blog/2010/06/02/git-submodules-explained/(已找到链接here https://stackoverflow.com/questions/6031494/git-submodules-and-ssh-access).
我想一些更简单的解决方法可能对我的情况有所帮助(例如在某些本地配置文件或通过命令行提供默认登录),但我还没有找到任何可行的提示。
And 问题:在绝对 URL 中使用子模块而无需硬编码用户名的最简单方法是什么?
实际上,相对 url 已经可以在 msysgit 中正常工作了。我已将其从 1.7.7.1 升级到 1.7.8,崩溃现象消失了。伟大的! :)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)