security - 如何设置不同用户只能看到某些部分的git存储库?

标签 security git version-control repository access-control

如何设置一个 git 存储库,让一些用户可以看到源代码的某些部分,而其他用户可以看到所有源代码?我看过很多只给某些用户提交访问权限的指南,但这些指南假设每个人都应该有读取权限。我也听说过 gitosis,但我不确定它是否支持这一点,而且它已经一年多没有任何提交,所以我认为它已经死了。

最佳答案

简而言之:你不能。 Git 是基于快照(至少在概念层面上)的版本控制系统,而不是基于变更集的版本控制系统。它将项目(存储库)视为一个整体。历史是一个项目的历史,而不是单个文件历史的联合(它不仅仅是每个文件历史的连接)。

在 contrib 或 VREFs 中使用像 update-paranoid 这样的钩子(Hook)gitolite 的机制,你可以允许或禁止访问存储库,你可以允许或禁止访问各个分支。您甚至可以禁止任何更改指定子目录中内容的提交。但项目始终被视为一个整体。

好吧,您可以做一件事:在 submodule 中创建一个您想要限制访问的目录,并限制对该子模块存储库的访问。

关于security - 如何设置不同用户只能看到某些部分的git存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1196312/

相关文章:

security - SSL/TLS 通信是否需要两个公钥,一个用于 CA,另一个用于服务器?

iphone - ASP 页面和 Cocoa/ObjC 之间的安全通信

Git 克隆错误 - 致命 : early EOFs

visual-studio-2008 - 如何将svn与Visual Studio 2008集成?

javascript - yarn : Procedure for redeploying JavaScript dependencies to Production Server (usage of `yarn.lock` file)

svn - 您如何计划合并多个分支机构?

java - 与未签名 Java 小程序的原始服务器的套接字连接

c# - 安全地验证客户端到服务器

git - AWS-Ubuntu-Git 安装错误致命 : $HOME not set

git - 如果你使用 git rebase 和 push,对比如果你使用 git pull、merge 和 push,它对项目维护者 merge 的工作有帮助吗?