在这里藏匿开发者。
我认为克里斯在他的问题上得到的是技术上的分支,或不是,应该对gitflow没有影响。 feature / bugfix分支可以存在于主存储库中,也可以存在于fork中。然而,它并不适用于发布分支真正存在于分支中,因为它不是你通常想要有不同副本的东西(尽管你可能会将一个错误修正拉取请求从分支引入发布分支)。
通常具有功能和错误修正,如果您使用任一分叉 要么 只需在单个存储库中使用分支,然后创建对上游存储库的拉取请求就是表明您合并到开发/主分支的意图的最佳方式,然后该分支成为代码审查和有关更改的对话的适当位置。
当你在一个分支上说“合作”时,你的意思是让多个人同时工作,或者只是代码审查。假设前者那么没有什么可以阻止你拥有一个私人分支,你已经授予别人权限,你要么推送到同一个分支,要么你创建拉取请求 之间 你的叉子,然后最终回到上游存储库。随你喜欢。
特别是关于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团队主要使用带有bugfix / feature分支的单一存储库。有两个原因。
它使Bamboo(或您选择的CI)中的分支构建变得更加容易,至少目前如此。 Bamboo可以轮询该存储库,查找与正则表达式匹配的分支,并为每个分支创建一个构建,无需任何手动干预。叉子变得有点复杂。
团队中的可见性 - 您可以自动查看人们正在处理的工作,而无需前往Stash或跟踪每个私人分支。
当您在双方之间没有信任或需要某种形式的强制隔离(如开源)时,分叉是完美的。但是,如果您所在的组织中“信任”团队中的每个人,我会认为拥有一个存储库可以使事情变得更容易/简化。只是我的2c。
我希望有帮助吗?
我认为在使用带叉子的git-flow方面,其中一个必然会出现的问题是:如果跟踪上游(这是可取的),上游的变化在哪里?实际上,这是我刚才偶然发现这个问题时我想到的第一件事。
问题是,当你最终“git flow feature finish feature / whatever”时,它最终会合并回你的fork开发分支。这一切都很好。但最终你会得到“git flow release start X.X.X”和“git flow release finish X.X.X”,这将导致你的fork master合并。如果您一直盲目地将上游更改直接转移到master中,那么您的fork可能会开始偏离您的预期目标,以便首先维护fork。我认为,你真正想要做的就是从上游挑选。
在这种情况下,跟踪上游的常规方法适用:创建“上游”分支并将其设置为跟踪上游。不,git-flow不会对“上游”分支做任何事情,但是因为你使用git-flow并不意味着你不能创建额外的分支。或者通常使用git的其他功能,git-flow不一定做任何特别的事情。