将git repo同步到远程而不覆盖更改

时间:2015-07-28 11:18:24

标签: git version-control

我正在研究处理这种情况的最佳方法

位置A

  • 小学硕士GIT回购
  • GIT-Flow开发流程(适用于功能分支机构,开发有最新的预发布代码, Master 保留发布代码)
  • 所有编码的99%都在此回购中完成

位置B

  • 每晚都有位置A 开发分支(镜像/推送)到此repo的副本
  • 1%的代码写在此处,并且特定于此repo

工作流程类似于:

位置A - 我们编写了一个新的软件包,晚上它被推送到 B

位置B - 编码员添加了一些永远不会返回 A

的特定功能

位置A - 制作软件的新版本并推送到 B

位置B - <<怎么了??有没有办法在不需要任何用户交互的情况下自动更新底层软件? >>

假设最终我们会有多个位置( B C D 等),这些位置可能包含他们需要的自定义代码存储(但永不推迟)

我知道在SVN中有一个叫做供应商分支的东西,但我不确定最好的git方法来处理这个问题。我担心的是,如果这个过程太复杂,它就会失败。

我假设使用远程或某种git mirror命令是可行的方法,但我正在寻找一些建议。

1 个答案:

答案 0 :(得分:0)

为了使推送始终成功,位置 B 的开发和主分支必须是位置 A 的完美镜像。此外,您永远不会直接在位置 B 的分支机构上工作,而是在特定于供应商的分支机构上工作:例如develop-vendormaster-vendor(这些都是坏名称,可以说)。 / p>

即使您只打算修改位置 B 的代码一次并在此后自动更新,您可能会遇到从位置推送 A 的情况 B 会导致与*-vendor分支机构发生合并或重新绑定冲突,因此您必须在流程中考虑这种可能性:例如,creating位于 B 可能会尝试自动将origin/master合并到master-vendor,但如果出现任何问题则会发出警告。