门控提交使用git分支

我正在考虑使用git分支为每个开发人员设置一个门控提交工作流,如下所示:

  • 每个开发人员都有自己的远程分支。
  • 开发人员只会将他们推送到他们的远程分支。
  • 如果测试通过,CI服务器单独构建每个分支并合并到主分支。
  • 开发人员通过将其分支拖放到主设备上来接收更改。
  • 这是一个合理的解决方案? 我来自颠覆,对git没有太多经验。


    我认为这个评价通常是合理的。 我会尽量不把分支想象成'遥远'。 这是颠覆转变的一部分。 所有开发人员都具有用于与实际远程存储库同步的本地和远程(分段)区域('起源')。 开发人员应该经常与主分支进行合作并进行推动和重新分配(保持更新)。

    有关git branch,fork,fetch,merge,rebase和clone的工作流程的更多信息,有什么区别?

    我的工作流程是:

  • 拉最新的高手
  • 做一个分支
  • 做工作
  • 将更改提交到分支
  • 取得最新的主人
  • 将主合并到分支中
  • 做更多的工作
  • 将更改提交到分支
  • 取得最新的主人
  • 将主合并到分支中
  • 代码审查
  • 切换到主
  • 获取最新远程版本的远程主机
  • 将分支合并到主
  • 把主人推到远程

  • 根据我个人的经验,过去最适合我团队的工作流程是让所有开发人员共享一个远程分支。 对于我的团队来说,我们只是把这个分支称为“主人”。 我们的分支战略借鉴了这篇文章的创意:a-git-branch-model。 只需将文章中的“开发/主”分支与“主/发布”互换,并且您基本上拥有了我的设置。 这是一样的,只是标记不同。

    我基本上让我们所有的开发人员都承诺掌握,但只有提交合并的约定。 所有直接编码都发生在主题分支上。 对于只有一个变更集的快速修复,可以直接向母版提交。 但总的来说,强烈鼓励使用本地话题分支。

    此外,所有提交给主的提交都必须立即推送,否则差异会累积并使合并更加困难。 通过这种方式,解决合并的负担是开发人员的责任,而不是团队负责人或一些自动化软件。 这是理想的情况,因为开发代码的人通常最了解自己的变化。

    如果不止一个开发人员需要在单个主题分支上工作,我允许所有开发人员将他们自己的分支在特定路径下推送到远程(在我的情况下,它是“共享/”),以便其他人可以从中进行推送和推送。

    对于测试服务器(CI服务器),它会在每次测试运行时更新其主分支。 在新分支上测试并不是必须的,但是我知道某些自动化脚本不直接在master上工作,所以我更加舒适。

    如果你是来自svn,在共享分支上发生不断的小变化可能看起来有点可怕。 不要害怕,git通常非常擅长解决冲突,90%的时间git mergegit pull甚至不会引发冲突。

    最后,确保向开发人员灌输经常的习惯,经常拉动。 小的增量更改实际上有助于更好地合并代码。


    使用Gerrit - 它基本上是一个内置代码审查功能的门控提交解决方案。

    链接地址: http://www.djcxy.com/p/7551.html

    上一篇: Gated commits using git branches

    下一篇: Github README.md and readme.md