5

是否可以在分叉思维模式之上使用 Gitflow?如果是这样,您将如何创建本地功能分支,将其推送到您的源,然后拉取请求?您会请求分支以使其可供其他人使用吗?我对它如何与 Atlassian Stash 一起工作特别感兴趣。

谢谢!

4

2 回答 2

10

在这里隐藏开发人员。

我认为 Chris 提出的问题是技术上的分叉与否应该对 gitflow 没有影响。功能/错误修复分支可以存在于主存储库或分支中。然而,发布分支真正存在于分叉中是没有意义的,因为您通常不希望拥有不同的副本(尽管您可能会从分叉向发布分支提出错误修复拉取请求)。

通常带有功能和错误修复,如果您在单个存储库中使用分叉仅使用分支,那么向上游存储库创建拉取请求是表明您打算合并到 dev/master 分支的最佳方式,然后成为代码审查和讨论更改的合适场所。

当你在一个分支上说“协作”时,你的意思是有多个人同时工作,或者只是代码审查。假设前者,那么没有什么能阻止您拥有一个个人分支,您已授予其他人权限,并且您要么推送到同一个分支,要么在您的分支之间创建拉取请求,然后最终返回上游存储库。随你喜欢。

特别是关于 Stash,这里有一些答案可能会让您了解 Stash 如何与 GitFlow 交互:

https://answers.atlassian.com/questions/220237/stash-branching-model-vs-git-flow

https://answers.atlassian.com/questions/165443/git-flow-with-stash

只是一些关于分叉与分支的思考——Stash 团队主要使用带有错误修复/功能分支的单个存储库。有两个原因。

  1. 它使在 Bamboo(或您选择的 CI)中构建分支变得更加容易,至少目前是这样。Bamboo 可以轮询该存储库,查找与正则表达式匹配的分支并为每个分支创建一个构建,而无需任何人工干预。使用叉子会变得更复杂一些。

  2. 团队内的可见性 - 您可以自动查看人们在做什么,而无需去 Stash 或跟踪每个个人分叉。

当您在两方之间不信任或需要某种形式的强制隔离(如开源)时,分叉是完美的。但是,如果您所在的组织“信任”团队中的每个人,我会认为拥有一个存储库会使事情变得更容易/简化。只是我的2c。

我希望这有帮助吗?

于 2014-01-03T19:38:49.677 回答
-1

我认为在使用带有 fork 的 git-flow 方面,必然会出现的问题之一是通常的问题:如果跟踪上游(这是可取的),上游的变化会去哪里?确实,这是我不久前偶然发现此线程时想到的第一件事。

问题是,当你最终“git flow feature finish feature/whatever”时,它最终会合并回你的 fork 开发分支。这都很好。但最终你会得到“git flow release start XXX”和“git flow release finish XXX”,这将导致合并到你的fork master。如果您一直盲目地将上游更改直接拉入 master,那么您的分叉可能会开始偏离您最初维护分叉的预期目标。我认为,您真正想做的是从上游采摘樱桃。

在这种情况下,跟踪上游的常规方法适用:创建一个“上游”分支并将其设置为跟踪上游。不,git-flow 不会对那个“上游”分支做任何事情,但是仅仅因为你正在使用 git-flow 这并不意味着你不能创建额外的分支。或者通常使用 git 的其他功能,git-flow 不一定要做任何特别的事情。

于 2014-06-06T16:54:10.253 回答