2017-08-29 20 views
0

我正在寻找有效的方式来使用具有高级访问权限的GIT工作流程。 工作流程如下:http://nvie.com/posts/a-successful-git-branching-model/但可以采取更简单的替代方法来理解下一段中描述的实际需求。使用高级访问控制实现GIT工作流是否可行?

看来我需要的是配置每个开发人员的文件/目录权限(可能不包括“列表”权限,但只有读写如果没有“读”权限意味着DEV根本不会看到文件/目录)。这样我就可以与开发人员分享足够多但有限的软件。第二件重要的事情是,他仍然可以发送合并请求,但只能在允许的目录/文件中添加和/或修改源代码。

要聚合的问题是:有没有办法使用给定的GIT中的工作流程,以部分共享资源库,并且仍然使用Git仓库的全部潜能的能力。 Git模块和子树效率不高,似乎是用于其他用例,因为它们会牺牲存储库的能力。

回答

1

有在git的目录级权限的支持。访问通常由git(文件系统ACL,Web服务器身份验证,由GitHub,GitLab,TFS,Bitbucket管理的权限)之外的东西控制,但即使如此,提交也是或多或少的原子单元,我从来没有听说过任何git主机会尝试在提交中提供访问控制。

如果你想不同的用户有机会获得该项目的不同部分,我能想到的唯一的解决办法是使用多个回购。

如果你可以将沿着目录线,您可能能够设置的东西了子树或子模块,让你可以有你的“完全访问”回购自动拉在一起的一切。这不会是无缝的,但你可以做一些工作。

如果那样的划分是不可行的,那么问题就大很多。在这种情况下,整个项目的版本X必定是与开发人员可用文件子集的版本X分开的提交。您的“完全访问”回购可以保留两套提交,但在两者之间同步更改仍然是一项非常重要的工作。

可以并处任何你想要的那种控制在回推到你的仓库(使用挂钩);但如果规则是开发人员无法看到或甚至没有意识到某些文件,那么使用git并不容易。

+0

您的评论正在确认我的观点。在做出最终决定之前我有更多的时间,我会把问题留待比。谢谢。 – kanevbgbe

+0

你是否知道一个工具/工具链可以实现这一点,不管git如何,甚至可以用另一个SCM工具替代git,如果更好地达到目的? – kanevbgbe

相关问题