有没有一种方法可以设置分支,使其只能合并到分支中,而不能推送到其中?此外,有什么方法可以在BitBucket,GitLab或GitHub上运行吗?
我们在功能分支上工作,将其推送到BitBucket / GitLab / GitHub(取决于项目),然后将它们合并到一个称为“开发”的集成分支中。我要阻止人们直接推动“发展”。
BitBucket具有一种限制访问分支的方法,但同时也阻止人们执行合并请求。
是:它被称为分叉(如在GitHub上叉和它的提示,到位桶叉和GitLab叉)。
您有一个仓库,其中只有一个集成商负责(他/她将合并到目标分支)。
开发人员无法推动该回购。
您已经有了“分叉的仓库”,您可以在其中向原始仓库发出请求请求:贡献者可以将请求推送到他们想要的任何分支,然后(从该推送分支)向原始仓库的目标分支发出请求请求。
从理论上讲,您只能使用一个上游回购协议,但这将需要一个授权层(如gitolite)以保护分支免遭推送/合并。
这在Github(不保护分支),BitBucket(保护分支,但不防止合并)和GitLab(与BitBucket相同)中不可用。
这就是为什么使用多个上游存储库更容易的原因:原始存储库和一个或多个分叉。
GitHub / BitBucket / GitLab在拉取请求方面有一个很好的界面,将其与注释绑定在一起,便于围绕特定拉取请求进行交流和讨论。
分叉+拉取请求不仅是“ git方法”,它确实是集成许多贡献的最便捷的方法,这就是为什么git最初是由Linus Torvalds发明的:帮助他每天为自己集成许多补丁他的Linux内核。
“受保护的分支”的方式提到的Tippa拉吉(以及我刚才所说的上面)不是一个方法,我会建议,因为这将人为地强制使用集中式的方法,你需要控制一切:
出于这个原因,GitHub不提供受保护的分支。
(实际上,自2015年9月以来,它确实存在:请参见“如何保护github中的“主”? ”)。
BitBucket和GitLab确实提供了该功能。
单个存储库还可以通过添加授权层(如gitolite)来管理和保护分支(甚至是文件夹和文件)。
但是,在促进围绕功能分支的协作方面,没有什么比拉取请求更好。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句