有没有办法设置一个分支,使其只能合并到一个分支中,而不是推入?此外,有什么办法可以在BitBucket,GitLab或GitHub上运行?BitBucket/GitLab/GitHub上的合并分支?
我们在功能分支上工作,将它们推送到BitBucket/GitLab/GitHub(取决于项目),然后将它们合并到名为'development'的集成分支中。我想阻止人们直接推动“发展”。
BitBucket具有限制访问分支机构的手段,但它也阻止人们也能够执行合并请求。
有没有办法设置一个分支,使其只能合并到一个分支中,而不是推入?此外,有什么办法可以在BitBucket,GitLab或GitHub上运行?BitBucket/GitLab/GitHub上的合并分支?
我们在功能分支上工作,将它们推送到BitBucket/GitLab/GitHub(取决于项目),然后将它们合并到名为'development'的集成分支中。我想阻止人们直接推动“发展”。
BitBucket具有限制访问分支机构的手段,但它也阻止人们也能够执行合并请求。
是:它被称为forking(如GitHub fork和its tips,BitBucket fork和GitLab fork)。
您有一个只有集成商负责的回购(他/她将合并到目的地分行)。
开发人员无法推送到该回购。
你有“分叉回购”,在那里你可以引入请求到原来的回购:贡献者可以推他们想要的,然后任何分行(从推分支)拉请求到目的地分支的原始回购。
从理论上讲,你可以只用一个upstream repo,但这需要一个authorization layer像gitolite,以防止推/合并分支。
Github(不保护分支),BitBucket(保护分支,但不保护分支)和GitLab(与BitBucket相同)不可用。
这就是为什么它更容易与几个上游回购:一个原始的,一个或几个分叉。
并从github /到位桶/ GitLab有大约引入请求一个漂亮的界面,追平那些评论,促进围绕一个特定拉动请求的交流和讨论。
的分岔+拉请求不只是“git的方式”,它确实是集成了许多贡献,which is why git was invented by Linus Torvalds in the first place最方便的方法:帮助他整合补丁很多每天为他的Linux内核。
“受保护的分支”的方式mentioned由Tippa Raj(以及我刚才所说的上面)不是一个方法,我会建议,因为这将人为地强制执行集中方法,你需要掌控一切:
GitHub不提供受保护的分支机构,因为这个原因。
(实际上,自2015年9月起,它确实:请参阅“How to protect “master” in github?”)
BitBucket和GitLab确实提供了该功能。
个人回购也可以管理和保护分支(甚至文件夹和文件),并增加authorization layer如gitolite。
但是,当涉及到促进功能分支周围的协作时,没有什么能够打败请求。
除了叉和合并,还有另一种方法。
我不确定Bitbucket和Github,但Gitlab有一个功能可以保护分支。所以除了“主用户”以外,任何人都不会推动该分支。所以开发人员可以推入功能分支,然后分支可以合并到master
分支由“主用户”
Bitbucket与分支限制有类似的机制:https://blog.bitbucket.org/2013/09/16/take-control-with-branch-restrictions/ –
从技术上讲,合并只是一个提交与多个父母,你仍然需要推到某个地方,如果你想发布它。 – poke