是否可以在分叉思维基础上使用Gitflow?如果可以,如何创建本地功能分支,将其推送到您的源并请求拉取?您会拉取请求一个分支以使其对其他人可用吗?我特别感兴趣的是这与Atlassian Stash如何配合使用。
谢谢!
是否可以在分叉思维基础上使用Gitflow?如果可以,如何创建本地功能分支,将其推送到您的源并请求拉取?您会拉取请求一个分支以使其对其他人可用吗?我特别感兴趣的是这与Atlassian Stash如何配合使用。
谢谢!
我是一名Stash开发人员。
我认为克里斯的问题实际上是针对技术上分叉或不分叉,对gitflow应该没有影响。特性/bugfix分支可以存在于主资源库中,也可以在分叉中。但是,版本发布分支在分叉中真的没有太多意义,因为这不是你通常想要具有分歧副本的东西(尽管您可能会从分叉中向发布分支提出错误修复拉取请求)。
通常来说,在使用分叉或在单个存储库中使用分支的情况下,如果您想要特性和错误修复,那么创建拉取请求到上游存储库是表明您想要合并到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
分叉vs分支的一些思考 - Stash团队大多使用单个存储库和bugfix / feature分支。原因有以下两点:
至少目前看来,在Bamboo(或您选择的CI)中具有分支构建要容易得多。 Bamboo可以轮询该存储库,查找与正则表达式匹配的分支,并创建每个分支的构建,而无需任何手动干预。对于分叉会变得稍微复杂一些。
团队内可见性 - 您可以自动查看人们正在处理的工作,而无需转到Stash或跟踪每个个人分支。
当两个团队之间缺乏信任或需要一些形式的隔离(例如开源)时,使用Fork是完美的选择。但是,如果您所在的组织中“信任”团队中的每个人,我认为拥有一个单一的代码库使事情更加容易/简化。这只是我的个人意见。
希望有所帮助?
我认为在使用git-flow和fork的时候,必定会出现一个问题:如果要跟踪上游(这是理想的),上游更改将放在哪里呢?事实上,当我几分钟前偶然发现这个帖子时,第一件事就是想到了这个。
问题在于,当你最终使用“git flow feature finish feature/whatever”命令时,它将合并回您的分支开发分支。这很好。但是,最终您将达到“git flow release start X.X.X”和“git flow release finish X.X.X”,这将导致合并回您的分支主分支。如果您一直盲目地将上游更改直接拉入主分支,则您的分支可能会开始与您维护分支的预期目标产生分歧。我认为,您真正想做的是从上游挑选代码。
这种情况下,跟踪上游的常规方法适用:创建一个“upstream”分支并将其设置为跟踪上游。不,git-flow不会对该“upstream”分支执行任何操作,但是仅因为您正在使用git-flow,这并不意味着您不能创建其他分支。或者使用git的其他功能,而git-flow不一定显示特殊处理。
git-flow
会如何与分叉冲突? - Chris