关于Git Flow的问题

时间:2015-12-17 14:33:36

标签: git-flow

我们基本上使用此处记录的Git流程:http://nvie.com/posts/a-successful-git-branching-model/。现在开发人员提出了一些问题:

  1. 我们从哪里发布代码到生产?发布/修补程序分支或主服务器?
  2. 如果不再需要当前版本分支中的某些功能,则需要在发布分支中回滚。
  3. 我们说发布分支只会被锁定到潜在客户,这里不会进行任何代码更改。这与Git Flow不同,我不知道为什么。
  4. 我还有更多问题:

    1. 如果发布分支没有变化,为什么我们甚至需要一个呢?我来自ClearCase世界,我总觉得如果没有变化就不需要分支。
    2. 为什么Git没有使用很多标签。在ClearCase中,我们在每个构建中对开发分支进行基线/标记,并且我们可以使用baseline / tag来标识发布,不需要为发布创建分支。使用baseline / tag,我们总是可以使用先前的基线/标记来释放,而不需要回滚。

2 个答案:

答案 0 :(得分:1)

免责声明:根据我对git flow的理解给出答案,因此它们可能不正确:)

1. From where do we release the code to production? The release/hotfix branch or the master?

来自文章:

  

因此,每次将更改合并回master时,都是如此   根据定义,新的生产版本。

- >主人的生产版本

 2. Need to rollback in release branch, if some features in the current
 release branch are no longer required.

您没有在发布分支中执行功能,您在功能分支中执行功能。在发布分支中,您只需稍作更改/错误修正或在发布之前更新元数据。如果这些更改是多余的,则可以回滚分支,因为它们无论如何都是微小的变化,可能并不重要。

同样来自文章:

  

严禁在此处添加大量新功能。他们一定是   合并成开发,因此,等待下一个重大发布。

3. If there is no change in the release branch, why do we even need one? I am from the ClearCase world, and I always have this impression that a branch is not required if there is no change on it.

如果没有改变你是对的,分支可能是多余的。 但我认为在你的代码中你有版本号吗?这应该在发布分支中更新。

来自文章:

  

此外,它们允许修复小错误并准备元数据   发布(版本号,构建日期等)。

编辑:

4. Why Git is not using tag a lot. In ClearCase, we baseline/tag the development branch on every build, and we can use baseline/tag to identify a release, no need to create a branch for release. With baseline/tag, we can always take a previous baseline/tag to release, no need to rollback.

您不必使用最新的develop提交来启动发布分支。

答案 1 :(得分:0)

我会回答你的前两个问题 根据arcticle中的这一行

  

release分支合并为master(因为master上的每个提交都是定义的新版本,请记住)

我会说你应该从master

发布代码到生产

至于要删除之前实现的功能的回滚,我不认为它是正确的,因为您需要该代码的历史记录。你应该删除不推荐的代码做一个新的提交。