当你不能推或拉时Git工作流程

时间:2011-07-11 07:37:43

标签: git git-workflow git-patch

这对我来说是一个recurring问题,但我想重申一下。

快速解释我的情况:我所处的环境中我没有git服务器,也没有共享分区或编码器中的任何共同点。没有,也没有,不能拥有。周期。

我试图想出一个工作流程解决方案,即使在我们管理的环境中,我们的代表也能保持合理的同步。

我现在尝试的解决方案是使用讨论组来分发补丁,两个主要分支以及看似简短的工作流程,如下所示:

  • 分支是marsteryours
  • master是同步分支,它可以让您及时了解其他deves仍然没有您的代码。
  • yours将是您的新主人,也是您的最终代码所在。您无法使用master
  • 每个人都将补丁发送到讨论列表。
  • 我认为非常很少有两个人会在同一个档案中工作。

工作流程中有两个主要操作:

生成补丁:

  1. yours
  2. mastergit format-patch master
  3. 生成补丁
  4. 转到master
  5. yours合并到master
  6. > 转到yours,继续使用yours
  7. 应用补丁:

    1. 转到master分支
    2. 应用收到的补丁
    3. 转到yours分支
    4. master合并到yours
    5. > 继续使用yours
    6. 如果我做对了,这应该让master分支合理地与其他人保持同步。

      并非yours分支只是为了帮助跟踪其他人的拥有与否。

      我试图弄清楚是否有太多麻烦的问题:

      • 是否应用了补丁顺序?
      • 如何避免和发现有人错过补丁?
      • 当有人错过补丁时可能会有多少问题?
      • 这可能产生的其他问题我甚至都想不到?

      谢谢!

1 个答案:

答案 0 :(得分:2)

我宁愿有两个回购:

,而不是一个有两个分支的回购
  • 其中只有master分支的
  • 一个(从第一个克隆)masteryours

我可以这样:

  • yours'repo
  • 中将我需要的master分支合并到yours
  • master repo的yours分支获取更改到master repo的master分支
  • master repo创建incremental bundle(生成一个文件,更易于沟通)
  • 邮寄一个文件以及master repo
  • 的SHA1

在接收端,我会:

  • 从捆绑中拉入master repo
  • 检查它的SHA1(这样,我相信我没有错过任何东西)
  • master分支从master repo拉入'yours'回购的master分支
  • 将我需要的内容从master分支合并到yours分支。

拥有两个单独的仓库的想法是让一个带有SHA1的仓库可以在接收端进行检查:它在两个站点中必须完全相同。