git:在子模块中管理多个遥控器

我的团队使用公开的
github托管项目作为我们主项目中的子模块.我们希望针对该项目管理我们自己的补丁,而不是推动上游,但是除非我们有一个镜像来推动我们的私有分支,否则我们无法共享这些补丁.

假设我们有镜像,我们的子模块需要两个遥控器:一个用于获取上游更改,另一个用于推送与我们的补丁分支合并.我们如何使用子模块(或超级项目)存储有关遥控器的信息,这样,团队的每个成员都可以轻松地执行上游更新,而无需git添加远程上游… github …项目.饭桶.

我们打算通过编写一个shell脚本来自动化进程和一个用于存储上游远程控制器的文件来解决这个问题,但有没有一种方法可以做到这一点?

可能是相关的,但我没有看到一个正确的解决方案:git add remote in submodule

最佳答案 目前的ansatz是这样的:

>对于需要以上述方式管理的每个子模块,有一个子模块/ .gitupstream文件存储该URL
>使用简单的shell脚本:

>从该文件更新子模块的上游远程
> git fetch upstream
> git checkout已知子模块补丁分支(可能来自.gitmodules submodule..branch)
> git merge upstream / master(或任何refspec)

然后手动:

> git push origin(包含我们的补丁分支的镜像)
>提交已更改的子模块并推入超级项目

我想看一个更好的,可能是git内置的解决方案.

点赞