如何在 git 存储库中只为部分用户提交文件?

How do I commit a file for only some users in a git repo?

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

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

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

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

I would like to, however, only expose the maven upload creds to some specific authorised users - the core maintainers of the library.

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

还有其他选择。

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

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

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

此解决方案不适用于协作者较多的团队,或者此类角色可能需要 assigned/changed 动态调整的团队。