一、 Pull Request 和 Collaborators 的区别
Pull Request(PR)和 Collaborators(合作者;协作者;仓库成员管理) 的主要区别是:
- Pull Request:只存在一个管理员(也是创建者),其他用户需要 fork 仓库后修改代码,然后通过 pull request 来贡献代码,合并需要管理员(也是创建者)的同意。
- Collaborators:以合作的形式,有多个管理员或开发者,受到邀请的用户可以随时 push(推送)修改后代码,可以不用 fork + pull request,修改的内容 push 后直接进入创建者的 Git 仓库中,不需要创建者的同意。
适用场景:
- Pull Request:所有变更必须通过 PR 审核,提交代码更安全。
- Collaborators:适合需要快速迭代、频繁提交的项目;成员高度信任,无需代码审核。
项目通常会结合两者:核心团队用 Collaborator 权限,外部贡献者用 Pull Request。
如果是私密项目,要让其他人看到项目内容,通常需要用 Collaborators(合作者;协作者;仓库成员管理)的方式来实现。在 Collaborators 的管理员或开发者的权限下,用户可以直接 push,也可以采用 fork + pull request,这个看代码的管理风格了。直接 push 操作会更简单一些,而采用 fork + pull request 会让项目代码的审核更加严格,同时让创建者对项目内容的变更状态更加了解。
另外需要注意的是:不管是 Collaborator 形式,还是 Pull Request,只要是多人参与项目的情况下,尽量经常使用 git pull,这样可以及时发现代码冲突,并及时解决,防止后续代码差距过大产生复杂冲突而无法合并。
二、不同 Git 平台上 Collaborators 的用户权限
以下是不同 Git 平台上 Collaborators(合作者;协作者;仓库成员管理)的用户权限。不同的 Git 平台赋予用户的详细权限可能会有些差异,这里做个简单的记录。如果需要验证具体的权限内容,可以在平台上注册两个账号,在某个账号下新建仓库,邀请另外一个账号,并调整权限来测试。
1. GitHub 平台(Collaborators):只有一个默认权限,详细的权限内容可以修改。
2. Gitee 平台(仓库成员管理):
- 管理员:管理员拥有仓库的全部权限,不包括删除仓库和清空仓库等
- 开发者:开发者能推送代码,新建和删除分支,创建 Issue,Pull Request,Wiki 等。
- 观察者:私有仓库观察者不能操作代码,但可以下载代码,可以创建 Wiki,Issue;公开仓库可以创建 Pull Request 等。
- 报告者:私有仓库报告者仅能创建 Issue,公开仓库可以 fork 仓库、下载代码和创建 Pull Request。
3. 自建 Gitea 平台(协作者):
- 管理员:完全控制仓库。
- 可写权限:可以直接推送代码,但不可以修改仓库设置。
- 可读权限:可以查看和下载。
说明:GitHub 的默认权限、Gitee 的开发者权限、Gitea 的可写权限,这三个的权限设置是比较接近的,个人推荐设置为这个权限。
另外,在 GitHub 的分支管理中,有“Require a pull request before merging”等内容的设置;在 Gitee 中有“保护分支设置”等规则的设置;在 Gitea 中也有“分支保护”的设置。通过设置这些规则可以进一步限制用户的操作权限,尤其是直接 push 的权限,这样可以确保代码协作流程的规范性和安全性。
【说明:本站主要是个人的一些笔记和代码分享,内容可能会不定期修改。为了使全网显示的始终是最新版本,这里的文章未经同意请勿转载。引用请注明出处:https://www.guanjihuan.com】