在我们的产品首次发布之后,我们将切换到主要开发和功能开发的不同分支。有没有办法以这种方式创建分支,以便我们可以保护它不被删除(意外或故意),除非您是特定用户(基于角色或用户名)?
我尝试在我们的本地gitlab机器中创建一个示例git存储库,然后从网站上的选项中保护其中一个分支,但之后我可以使用git push origin :branch_name
将其删除。提前谢谢!
解决方案是否适用于github.com?
答案 0 :(得分:5)
有很多方法可以解决这个问题:
答案 1 :(得分:4)
您可以在服务器上使用分支权限,方法是添加一个保护存储库的预接收挂钩,并将这样的内容添加到裸存储库中的配置文件中:
[hooks]
allowedtomerge = user1,user2,user3
protectedbranches = master
答案 2 :(得分:3)
自OP shershams提及in the comments
以来我们计划切换到github,我想知道他们是否为此目的实施了一些东西
事实证明,GitHub中已经实现了某些功能(很快就会推出):
Protected branches and required status checks(2015年9月3日)将允许您保护分支机构:
答案 3 :(得分:0)
我有一个git分支模型,它有用于分阶段部署的dev / master / production分支,因此我希望保护分支不被删除。我使用pull请求和Visual Studio Team Services,因此在从dev到master的每个pull请求之后,例如,VSTS会询问我是否要删除源分支(dev)。
我担心开发人员会意外删除dev或用于部署的其他重要分支,所以我使用了这个hack:
我创建了一个名为" dev"的一个分支,进行了一行更改,打开了针对dev的拉取请求,并将其保持打开状态。
只要有一个针对dev的open pull请求,就不能删除dev,VSTS也不会询问我是否要删除该分支。
如果还有其他更正式的解决方案,我很乐意使用它。但就目前而言,这很容易并且有效。
答案 4 :(得分:0)
如果您使用Gitlab,则可以configure protected branches:
配置受保护的分支
要保护分支,您至少需要拥有Master权限级别。请注意,默认情况下主分支受到保护。
导航到项目的设置➔存储库
- 醇>
滚动查找受保护的分支部分。
[...]