GitHub如何设置特定人员只有合并权限

275次阅读
没有评论

问题描述

想要创建一个GitHub工作流程,其中特定人员只能对存储库中的一个分支进行合并操作。用户尝试了一些方法,发现可以限制用户对存储库的读写权限,但是只有读取权限没有合并权限,而写入权限则太多,比如可以直接提交到分支中。用户想知道是否有更好的方法来实现这个需求。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

使用GitHub的”branch protection settings”功能可以帮助你实现这个需求。你可以在这篇文章中了解更多关于受保护分支的信息。你可以设置只有经过代码审查的PR才能合并到分支中。另外,你还可以使用Code Owners功能,在特定分支上指定某些用户作为代码所有者,只有他们才能接受对分支的更改。
通过这些控制,你可以设置任何人都可以向存储库贡献代码,但是发布分支的合并是受到严格控制的。

方案2

如果你不信任某些人员,可以考虑不让他们直接向存储库写入代码。一个常见的做法是让他们fork存储库,在自己的fork上进行开发。他们可以通过添加主存储库作为远程仓库(git remote add main $URL)来与主存储库保持同步,并在自己的fork上进行开发。完成后,他们可以在自己的fork的Web界面上创建一个pull request,该请求将自动发送回他们fork的主存储库。然后,只有对主存储库具有写权限的人才能合并该pull request。如果你真的想限制谁可以向主存储库写入代码,这种方法会更加清晰。
你还可以启用pull request的”squash and merge”选项,这样当PR被接受时,所有的提交将被压缩成一个单独的提交。
GitHub的访问控制似乎非常宽松,因为它允许每个人创建fork并发送pull request。但是当你只有一个团队使用私有存储库时,允许他们将自己的分支推送到存储库中,然后集成到受保护的分支中,可以很好地控制发布的内容。

方案3

请注意以下操作注意版本差异及修改前做好备份。
你还可以使用GitHub的”branch protection settings”功能来限制对分支的访问权限。在分支保护设置中,你可以选择允许特定用户或团队对分支进行合并操作。这样,只有被授权的用户或团队才能合并代码到分支中。
以下是设置分支保护的步骤:
1. 打开你的存储库页面。
2. 点击上方的”Settings”选项卡。
3. 在左侧导航栏中,选择”Branches”。
4. 在”Branch protection rules”部分,点击”Add rule”按钮。
5. 选择要保护的分支。
6. 在”Require pull request reviews before merging”部分,选择”Require review from Code Owners”选项。
7. 在”Require status checks to pass before merging”部分,选择你想要的状态检查。
8. 在”Require signed commits”部分,根据需要选择是否需要签名的提交。
9. 在”Include administrators”部分,选择是否将管理员包括在分支保护规则中。
10. 点击”Create”按钮保存设置。
通过以上步骤,你可以设置只有特定用户或团队才能合并代码到分支中。
请注意,这些设置只适用于受保护的分支,其他分支仍然可以由任何人进行更改。
以上是几种常见的方法,你可以根据你的具体需求选择适合你的方法来限制特定人员的合并权限。

正文完