Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何仅为git repo中的某些用户提交文件?_Git_Github_Git Commit - Fatal编程技术网

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

如何仅为git repo中的某些用户提交文件?,git,github,git-commit,Git,Github,Git Commit,我很肯定人们以前也遇到过这个问题,但我找不到任何解决办法 我一直在开发一个android库,并计划通过将其放在GitHub上实现开源。然而,我只想将maven upload creds公开给一些特定的授权用户——库的核心维护者 这怎么可能?如果我将用户名和密码存储在一个文件中并将其添加到gitignore,我将无法通过GitHub与其他任何人共享它。然而,如果我真的把这个文件添加到git中,它最终将成为一个公共回购协议,并与所有人共享 是否有某种方法可以在git中指定一个给定的文件只能由电子邮件

我很肯定人们以前也遇到过这个问题,但我找不到任何解决办法

我一直在开发一个android库,并计划通过将其放在GitHub上实现开源。然而,我只想将maven upload creds公开给一些特定的授权用户——库的核心维护者

这怎么可能?如果我将用户名和密码存储在一个文件中并将其添加到gitignore,我将无法通过GitHub与其他任何人共享它。然而,如果我真的把这个文件添加到git中,它最终将成为一个公共回购协议,并与所有人共享

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

然而,我只想将maven upload creds公开给一些特定的授权用户——库的核心维护者

你不能。Git不是身份验证管理器。它不针对每个文件进行操作,只针对每个提交进行操作

还有其他选择

  • 将共享凭据放入加密文件中。提交该文件。分发解密密钥。这类似于
  • 使用共享机密库,如或。这样做的好处是永远不会在公共存储库中公开您的凭据,即使是加密的

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

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

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


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

Git不处理文件。Git对提交进行操作。每次提交都会保存每个文件的完整快照,您可以分发整个提交,也可以不分发。因此,不要将私有文件放入存储库。另请参见.git不是适合此工作的工具:您永远不应该将凭据作为代码的一部分提交。然后,问题变成了“我如何管理代码所需的凭据?”这对于这个网站来说太宽泛了,但是如果你看的话,你应该能够在网上找到很多关于它的文章。