【问题标题】:How do I commit a file for only some users in a git repo?如何在 git repo 中只为某些用户提交文件?
【发布时间】:2021-07-17 12:28:02
【问题描述】:

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

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

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

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

【问题讨论】:

  • Git 不对文件进行操作。 Git 在 commits 上运行。每个提交都包含 每个 文件的完整快照,您要么分发整个提交,要么不分发。所以不要将私有文件放入存储库。另请参阅this question
  • git 不是这项工作的正确工具:您永远不应该将凭据作为代码的一部分提交。那么问题就变成了“我如何管理我的代码所需的凭据?”这对这个网站来说太宽泛了,但是如果你看的话,你应该可以在网上找到很多关于它的文章。

标签: git github git-commit


【解决方案1】:

然而,我想只将 maven 上传凭据公开给一些特定的授权用户——库的核心维护者。

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

还有其他选择。

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-06
      • 2019-08-21
      • 2019-04-02
      相关资源
      最近更新 更多