在我们的产品首次发布后,我们将切换到不同的分支进行主要开发和功能开发。有没有办法以这种方式创建分支,以便我们可以保护它不被删除(意外或故意),除非您是特定用户(基于角色或用户名)?
我试图在我们的本地 gitlab 机器上创建一个示例 git 存储库,然后保护其中一个分支免受网站上的选项的影响,但后来我能够使用git push origin :branch_name
. 提前致谢!
该解决方案可以在 github.com 上运行吗?
在我们的产品首次发布后,我们将切换到不同的分支进行主要开发和功能开发。有没有办法以这种方式创建分支,以便我们可以保护它不被删除(意外或故意),除非您是特定用户(基于角色或用户名)?
我试图在我们的本地 gitlab 机器上创建一个示例 git 存储库,然后保护其中一个分支免受网站上的选项的影响,但后来我能够使用git push origin :branch_name
. 提前致谢!
该解决方案可以在 github.com 上运行吗?
有很多方法可以解决这个问题:
你可以在服务器上使用分支权限,方法是添加一个 pre-receive 挂钩来保护你的存储库,并将类似这样的内容添加到裸存储库中的配置文件中:
[hooks]
allowedtomerge = user1,user2,user3
protectedbranches = master
由于评论中提到的OP sheshams
我们计划切换到 github,我想知道他们是否为此目的实现了一些东西
事实证明,在 GitHub 中实现了一些东西(并且很快就会提供):
受保护的分支和所需的状态检查(2015 年 9 月 3 日)将允许您保护分支:
请注意,自 2019 年 12 月 4日起,您可以通过启用Allow deletions
.
我有一个 git 分支模型,它具有用于分阶段部署的 dev/master/production 分支,因此我希望保护某些分支不被删除。我使用拉取请求和 Visual Studio 团队服务,因此例如在从 dev 到 master 的每个拉取请求之后,VSTS 会询问我是否要删除源分支 (dev)。
我担心开发人员不小心删除了 dev 或另一个用于部署的重要分支,所以我使用了这个 hack:
我创建了一个名为“save”的 dev 分支,进行了一行更改,打开了一个针对 dev 的拉取请求,然后将其保持打开状态。
只要有针对 dev 的公开拉取请求,就无法删除 dev,VSTS 也不会询问我是否要删除分支。
如果这个问题还有其他更官方的解决方案,我很乐意使用它。但就目前而言,这很容易并且有效。