我们的项目使用多个第三方开源库,其中一些需要自定义修改。
对于每个库,我们创建了自己的本地git存储库,将原始源位置添加为供应商远程,从那里克隆,根据需要进行修改并将其推送到内部远程存储库(让我们调用)它起源)。
然后将这些存储库用作我们核心项目中的子模块。
问题: “vendor” remote url不会传播到“origin”,因此对于克隆内部库存储库的任何人都会丢失。
每次要合并库的新上游更改时,您需要再次查找并手动添加供应商远程(或使用在开头创建的完全相同的本地存储库,如果它是仍然可用)。
是否有更好的方法来存储供应商存储库网址,以便每个开发人员可以传播和使用它?将额外的文件(例如clone_from_here
)添加到库中似乎也不是很优雅。
答案 0 :(得分:1)
您可以通过.git/config
完成此操作。成功提取或推送更改后,请查看.git/config
文件并记下远程url
和fetch
在您的开发人员克隆了存储库之后,在开发人员计算机上打开.git/config
并添加您复制的行。示例 -
[remote "vendor"]
url = git@xxx.com:xxxxx/xxxxxxx.git
fetch = +refs/heads/*:refs/remotes/origin/*
在此示例中,您的开发人员现在可以推送或拉向供应商。
如果你需要更多的控制来编写获取网址 - gitguys上有很好的文档 - http://goo.gl/JGaKD