如何在 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 不是身份验证管理器。它不按文件操作,仅按提交操作。
还有其他选择。
- 将您的共享凭据放入加密文件中。提交该文件。交出解密密钥。这类似于 Rails Encrypted Credentials.
- 使用共享机密库,例如 HashiCorp Vault or a shared password maanger vault。这样做的好处是永远不会在 public 存储库中公开您的凭据,即使是加密的。
在这两种情况下,无论您的项目有多少共享秘密,您只需要共享一个秘密、解密密钥或共享保管库访问权限。
我将采用我能找到的最直接的方法。
我会将敏感数据存储在 local.properties 文件中,该文件未签入版本控制。这适用于我的项目,因为目前我是唯一的管理员。如果有更多人加入,我将需要手动与他们共享文件的内容,但现在我没问题。
此解决方案不适用于协作者较多的团队,或者此类角色可能需要 assigned/changed 动态调整的团队。
我很确定以前有人遇到过这个问题,但我找不到任何解决方案。
我一直在开发 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 不是身份验证管理器。它不按文件操作,仅按提交操作。
还有其他选择。
- 将您的共享凭据放入加密文件中。提交该文件。交出解密密钥。这类似于 Rails Encrypted Credentials.
- 使用共享机密库,例如 HashiCorp Vault or a shared password maanger vault。这样做的好处是永远不会在 public 存储库中公开您的凭据,即使是加密的。
在这两种情况下,无论您的项目有多少共享秘密,您只需要共享一个秘密、解密密钥或共享保管库访问权限。
我将采用我能找到的最直接的方法。
我会将敏感数据存储在 local.properties 文件中,该文件未签入版本控制。这适用于我的项目,因为目前我是唯一的管理员。如果有更多人加入,我将需要手动与他们共享文件的内容,但现在我没问题。
此解决方案不适用于协作者较多的团队,或者此类角色可能需要 assigned/changed 动态调整的团队。