0

我希望这里的巫师可以帮助我。我过去使用过 Mercurial,所以我熟悉 DVCS 的概念。然而,这是我第一次使用 git 的工作流程略有不同。从本质上讲,它涉及层次结构,并且可能使用镜像。我希望得到的层次结构如下

Root Repo  
^  
|  
|_____<MIRROR>______>Primary Repo  
                     ^  
                     |  
                     |________<CLONE>____> Developer  
                     |  
                     |________<CLONE>____> Developer  

我想设置主仓库有两个原因:

  1. 位置/减少带宽使用,而不是每个开发人员从/向根存储库拉/推
  2. 通过审查清理代码,只有经过批准的代码才会进入 Root Repo

我见过其他工作流程,其中主仓库变成了一种缓存仓库,每个人都推送到根仓库,但这不是我想要的。我见过的另一个工作流程是每个人都向审阅者发送一封电子邮件,要求他/她进行更改,但这还不可行,因为团队已经习惯了 SVN,我希望尽可能地熟悉它。

我到目前为止所尝试的:

  1. 使用镜像标志克隆主仓库。
  2. 从主仓库克隆到本地。
  3. 测试修改,然后检查到本地 repo。
  4. 将代码推送到主仓库。
  5. 从 Root Rep 拉取(git 远程更新)
  6. git status 现在显示远程更改,而我的不可见
  7. 尝试使用全新的 Primary Repo 克隆(不显示我的更改)

我想知道这个工作流程是否可行(听起来应该可行)。更有可能是我搞砸了。欢迎任何和所有建议。

4

3 回答 3

0

看看 Gerrit+Jenkins。可以设置 Jenkins 来验证构建,然后审阅者可以在代码审查期间批准代码。

于 2012-11-05T08:32:30.640 回答
-1

你为什么担心每个人都推到一个回购?Git 非常高效。除非您不处理源代码(大图像或视频),否则没有理由增加您提出的复杂性。

至于工作流程,这就是我正在使用的: http: //dymitruk.com/blog/2012/02/05/branch-per-feature/

于 2012-11-05T08:40:02.957 回答
-1

你想要的应该是可行的(免责声明 - 我没有测试过这个):

设置

  • 设置根仓库 (R)
  • 创建主仓库(P)作为 R 的克隆。这将 R 设置为 P 的上游仓库。
  • 创建本地开发人员存储库(D1,D2,...)作为 P 的克隆(再次将 P 设置为 D* 的上游)。

工作流程

  • 开发人员在 D* 中开发。当满意时,他们推到P。
  • 开发人员会定期从 P 中获取信息,以了解同事所做的更改。
  • 您定期检查 P 中的代码,如果认为合适,将其推送到 R(*)。

那能解决你的问题吗?


至于你尝试了什么:

从 Root Rep(git 远程更新)拉取 git status 现在显示远程更改,而我的不可见

这看起来像是一个误解。git remote update不是“拉”——拉是:-)git pullgit remote update仅更新远程数据的缓存副本 - 您必须拉动才能将更改实际提取到本地分支中。如果您git pull是根存储库内部的主存储库,您应该会看到更改。

(*) 您可以在 P 中推入 R,也可以在 R 中从 P 拉出 - 结果是一样的。

于 2012-11-07T11:42:00.847 回答