git工作流程的建议

时间:2012-11-05 08:28:33

标签: git

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

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

我想设置Primary Repo有两个原因:

  1. 位置/减少带宽使用,而不是每个开发人员从/向Root Repo拉/推/
  2. 通过评论清理代码,只有经过批准的代码才能通过Root Repo
  3. 我已经看到其他工作流程,其中Primary Repo成为一种缓存仓库,每个人都推送到Root Repo,但这不是我想要的。 我看到的另一个工作流程是每个人都向审阅者发送一封电子邮件,要求他/她提取更改,但由于团队已经习惯了SVN并且我希望尽可能保持熟悉,因此这还不可行。

    到目前为止我尝试了什么:

    1. 使用镜像标记克隆主要回购。
    2. 从Primary Repo克隆到本地。
    3. 测试修改然后检入本地仓库。
    4. 将代码推送到Primary Repo。
    5. 从Root Rep中拉出(git远程更新)
    6. git status现在显示远程更改,而我的不可见
    7. 尝试使用全新的Primary Repo克隆(不显示我的更改)
    8. 我想知道这个工作流程是否可行(听起来应该是这样)。更可能是我弄乱了什么。欢迎提出任何建议。

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:-1)

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

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

答案 2 :(得分:-1)

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

<强>设置

  • 设置root repo(R)
  • 创建主要回购(P)作为R的克隆。这将R设置为P的上游回购。
  • 创建本地开发者回购(D1,D2,...)作为P的克隆(再次,将P设置为D *的上游)。

<强>工作流

  • 开发人员在D *中开发。如果满意,他们会推送到P。
  • 开发人员定期从P开始,随时了解同事的最新动态。
  • 您定期查看P中的代码,如果认为合适,请将其推送到R(*)。

这会解决你的问题吗?


关于你的尝试:

  

从Root Rep中拉出(git远程更新)git status现在显示为remote   变化和我的不可见

这看起来像是一种误解。 git remote update “拉” - 拉是git pull :-)。 git remote update仅更新远程数据的缓存副本 - 您必须拉动以实际将更改提取到本地分支。如果您git pull来自根目录内的主要回购,您应该会看到更改。

(*)你可以在P中推入R,或者你可以在R中拉出P - 结果将是相同的。