如何在 git repo 中仅为某些用户提交文件?

问题描述

我很确定人们以前遇到过这个问题,但我找不到任何解决方案。

我一直在开发一个 android 库,并计划通过将其放在 GitHub 上使其开源。但是,我想只将 Maven 上传凭证公开给某些特定的授权用户 - 库的核心维护者。

这怎么可能?如果我将用户名密码存储一个文件中并将其添加到 gitignore,我将无法通过 GitHub 与其他任何人共享它。但是,如果我确实将文件添加到 git,它将最终转到公共存储库并与所有人共享。

是否有某种方法可以在 git 中指定给定文件只能由电子邮件 ID 位于指定列表中的人访问?我是否遗漏了一些非常明显的东西?

解决方法

但是,我只想将 Maven 上传凭证公开给某些特定的授权用户 - 库的核心维护者。

你不能。 Git 不是身份验证管理器。它不是按文件操作,而是按提交操作。

还有其他选择。

在这两种情况下,无论您的项目有多少共享机密,您只需要共享一个机密、解密密钥或共享金库访问权限。

,

我将采用我能找到的最直接的方法。

我会将敏感数据存储在 local.properties 文件中,该文件未签入版本控制。这适用于我的项目,因为目前我是唯一的管理员。如果有更多人加入,我需要手动与他们共享文件内容,但我现在可以。

此解决方案不适用于协作者较多的团队,或者可能需要动态分配/更改此类角色的团队。