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

7
我们的项目使用了几个第三方开源库,其中一些需要定制修改。
对于每个库,我们创建了自己的本地git仓库,将原始源位置添加为“vendor”远程,从那里克隆,根据需要进行修改,并将其推送到内部远程仓库(我们称之为“origin”)。
然后,在我们的核心项目中使用这些仓库作为子模块。
问题在于:“vendor”远程url未被传播到“origin”,因此对于克隆内部库存储库的任何人来说,它都会丢失。
每次想要合并库的新上游更改时,您需要找到并手动再次添加“vendor”远程(或者如果一开始创建的确切本地存储库仍然可用,则使用它)。
是否有更好的方法来存储“vendor”存储库url,以便每个开发人员都可以使用并传播?向库添加额外的文件(例如“clone_from_here”)似乎也不太优雅。
1个回答

1

你可以通过 .git/config 来完成。在成功拉取或推送更改后,查看 .git/config 文件并记录远程 urlfetch

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

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

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

如果您需要更多控制编写获取URL,则在gitguys上有出色的文档 - http://goo.gl/JGaKD


这比手动添加供应商略好,因为它恢复了要获取的信息以及要放入哪个分支。但是它仍然需要在克隆后手动编辑您的git存储库。 - rluba
唯一的另一种方法是创建一个别名,该别名在每个人的配置文件中,这样当他们运行命令 - 例如 gitpsh,它会特定地推送到指定的分支。 - First Zero
由于似乎没有优雅的解决方案,我会接受你的答案。 - rluba

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接