7

我们的项目使用了几个第三方开源库,其中一些需要自定义修改。

对于每个库,我们创建了自己的本地 git 存储库,将原始源位置添加为供应商远程,从那里克隆,根据需要对其进行修改并将其推送到内部远程存储库(我们称之为origin)。

然后将这些存储库用作我们核心项目中的子模块。

问题: “供应商”远程url 不会传播到“源”,因此会丢失给任何克隆内部库存储库的人。

每次要合并库的新上游更改时,都需要再次查找并手动添加远程供应商(或使用与开始时创建的完全相同的本地存储库,如果它仍然可用)。

是否有更好的方法来存储供应商存储库 url,以便每个开发人员都可以传播和使用它?向库中添加一个额外的文件(例如clone_from_here)似乎也不是很优雅。

4

1 回答 1

1

您可以通过.git/config. 成功提取或推送更改后,查看.git/config文件并记下远程urlfetch

在您的开发人员克隆存储库后,.git/config在开发人员机器上打开并添加您复制的行。例子 -

[remote "vendor"]
    url = git@xxx.com:xxxxx/xxxxxxx.git
    fetch = +refs/heads/*:refs/remotes/origin/*

在此示例中,您的开发人员现在可以推送或拉取供应商。

如果您需要对编写 fetch url 进行更多控制 - 在 gitguys 上有很好的文档 - http://goo.gl/JGaKD

于 2012-01-04T05:28:03.713 回答