4

这对我来说是一个反复出现的问题,但我想重申一下。

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

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

我目前正在尝试的解决方案使用一个讨论组来分发补丁,两个主要分支和一个看似短的工作流程,如下所示:

  • 分支是marsteryours
  • master是同步分支,它将让您保持最新状态并跟踪其他开发人员仍然没有您的代码。
  • yours将成为您的新主人,并且是您的最终代码应该在的地方。你不在master.
  • 每个人都将补丁发送到讨论列表。
  • 我正在考虑很少有两个人会在同一个文件中工作。

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

生成补丁:

  1. 必须yours
  2. master从( git format-patch master)生成补丁
  3. master
  4. 并入yours_master
  5. >转到yours,继续使用yours

应用补丁:

  1. master分行
  2. 应用收到的补丁
  3. yours分行
  4. 并入master_yours
  5. >继续合作yours

如果我做对了,这应该使master分支与其他人保持合理同步。

并不是说yours分支只是为了帮助跟踪其他人拥有或没有的东西。

我试图弄清楚一些问题是否会太麻烦:

  • 应用补丁的顺序?
  • 如何避免和检测有人错过补丁?
  • 当有人错过补丁时会有多大问题?
  • 这可能会产生我什至没有想到的其他问题?

谢谢!

4

1 回答 1

2

我宁愿拥有两个仓库,而不是一个带有两个分支的仓库:

  • 一个只有master分支的
  • 一个(从第一个克隆)masteryours

这样我可以:

  • 将我需要的内容从yours分支合并到master' yours' repo
  • 从repo的master分支获取更改到yoursrepo 的master分支master
  • 从repo制作一个增量包master(生成一个文件,更容易沟通)
  • 邮寄那个文件,连同masterrepo的 SHA1

在接收端,我会:

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

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

于 2011-07-11T11:46:55.447 回答