是否可以在分叉思维模式之上使用Gitflow?如果是这样,您将如何创建一个本地功能分支,将其推送到您的原点,然后提取请求呢?你会请求分支机构将其提供给其他人吗?我对Atlassian Stash的工作原理特别感兴趣。
谢谢!
答案 0 :(得分:10)
将开发人员藏在这里。
我认为克里斯在他的问题上得到的是技术上的分支,或不是,应该对gitflow没有影响。 feature / bugfix分支可以存在于主存储库中,也可以存在于fork中。然而,对于发布分支来说真的没有意义,因为它不是你通常希望有不同副本的东西(尽管你可能会将一个错误修正拉请求从一个分支引入一个发布分支)。 / p>
通常使用功能和错误修正,如果您在单个存储库中使用分支或,则向上游存储库创建拉取请求是表明您的意图的最佳方式合并到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团队主要使用带有bugfix / feature分支的单一存储库。这有两个原因。
它使Bamboo(或您选择的CI)中的分支构建变得更加容易,至少目前如此。 Bamboo可以轮询该存储库,查找与正则表达式匹配的分支,并为每个分支创建构建,无需任何手动干预。它有点复杂的分叉。
团队内部的可见性 - 您可以自动查看人们在做什么,而无需前往Stash或跟踪每个私人分叉。
当您在双方之间没有信任或需要某种形式的强制隔离(如开源)时,分叉是完美的。但是,如果您所在的组织中“信任”团队中的每个人,我会认为拥有一个存储库可以使事情变得更容易/简化。只是我的2c。
我希望有帮助吗?
答案 1 :(得分:-1)
我认为在使用带叉子的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不一定对它有任何特殊之处。