通过克隆/推/拉传播远程位置

时间:2012-01-03 13:12:09

标签: git vendor-branch

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

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

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

问题: “vendor” remote url不会传播到“origin”,因此对于克隆内部库存储库的任何人都会丢失。

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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

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

如果你需要更多的控制来编写获取网址 - gitguys上有很好的文档 - http://goo.gl/JGaKD