通过高级访问控制实现GIT工作流程是可能的



我正在搜索具有高级访问权限的git工作流程的有效方法。工作流是这样的:http://nvie.com/posts/a-successful-git-branching-model/,但是可以采取更简单的替代方案,以了解下一段中描述的实际要求。

我似乎需要使用文件/目录权限将每个开发人员配置(可能不包括"列表"权限,而仅包括"读取"许可,则仅读取和写入,这意味着开发人员根本不会看到文件/目录)。这样,我将能够与开发人员共享足够的软件部分但有限的软件。第二重要的是,他仍然应该能够发送合并的拉请请求,但只有在允许的目录/文件中进行源和/或修改。

汇总了一个问题:是否有任何方法可以使用给定的GIT工作流,并能够部分共享存储库并仍然使用GIT存储库的全部潜力。git模块和子树不高,对于另一个用例而言似乎是因为它们会牺牲存储库的能力。

git中目录级权限不支持。访问通常由git之外的某些东西(文件系统ACL,Web服务器身份验证,由GitHub,Gitlab,TFS,Bitbucket管理的权限)控制听说任何将试图在提交中提供访问控制的git主机。

如果您希望不同的用户可以访问项目的不同部分,那么我能想到的唯一解决方案是使用多个存储库。

如果您可以按目录线将其划分,则可以用子树或子模块设置某些东西,以便可以使"完整访问"回购自动将所有内容拉在一起。这不会是无缝的,但是您可能可以做些工作。

如果这种划分不可行,那么问题要大得多。在这种情况下,完整项目的版本X必然是开发人员可用的文件子集的单独提交与版本X。您的"完全访问"存储库可以保持两组提交,但是两者之间的同步更改仍然是一个非常重要的练习。

您可以将想要的任何类型的控件强加于将其推回存储库(使用钩子);但是,如果规则是开发人员看不到甚至不知道某些文件,那么它根本不是您可以轻松地使用git。

最新更新