是否可以将共享/公共存储库中的特定分支设置为只读?(我不想将整个存储库设为只读)
例如,master
除了项目经理或执行协调任务的人之外,大多数人都应该是只读的。
不,访问权限是存储库范围的。
这意味着,如果您需要这种限制,您将需要该回购的私人分叉,只有 PM 作为合作者:他/她将能够提取他/她需要的东西。
然后 PM 可以push --force
回到公共 repo 的 master 分支(应该明确宣传 master 可以随时更改,并且永远不应该由 devs 直接推送)
或者你可以不理会第一个 repo,将第二个 repo 公开(警告只从 PM 管理的第二个 repo 中提取,永远不要推送)。
开发人员可以向他们的本地仓库添加第二个远程引用,第一个是让他们推送或拉取,第二个是拉取 PM 在第二个仓库中存储的主要发布版本。
除此之外,唯一的其他解决方案是您控制的服务器上的中间存储库,在其之上您可以添加一个授权层,如gitolite(这将允许只读分支),并且如果提交可以继续推送到 GitHub视为“有效”。