【问题标题】:Git fetch in Shell Script with Multiple Users使用多个用户在 Shell 脚本中获取 Git
【发布时间】:2018-11-27 12:09:10
【问题描述】:

我正在尝试在 linux 中编写一个 shell 脚本,该脚本从 git 存储库中提取所有在最新提交中提交的文件。我这样做的方法是运行 git fetch 以获取最新的提交 inof,然后运行 ​​git show 以捕获文件名,然后我单独提取特定文件。该脚本需要由多个用户运行,所有用户都可以访问 git 存储库。我将它设置为询问用户名和密码,然后运行:

git fetch "https://USER:PASSWORD@GIT_URL"

这可行,但并不总是得到最新的提交。我发现 git fetch(无参数)正在工作,并发现这个 Q/A 解释了差异:git fetch vs. git fetch origin master have different effects on tracking branch

所以,我更改了脚本,所以它只调用 git fetch,并且用户在出现提示时输入他/她的密码(它询问密码,“https://USER@GIT_URL”:)。现在的问题是其他用户被要求输入我的密码。我认为 USER 将从系统登录中获取。有谁知道我如何才能只获取最新提交中更改的文件而不会遇到这些问题?谢谢。

【问题讨论】:

  • 您写的是$USER 还是您的实际用户名?环境变量通常应该设置为运行命令的用户的 id。
  • 您的脚本与在各自本地存储库中运行 git pull 的用户有何不同?
  • 这是在共享远程服务器上运行的。

标签: linux git


【解决方案1】:

当您在共享服务器上的脚本中使用 Git URL 时,建议使用 SSH URL 而不是 HTTPS URL。您需要做的就是创建 SSH 密钥并在 Git 存储库中添加公钥。这将允许使用 SSH URL 访问 git 存储库。

如果您不介意共享密码,另一种方法是使用以下配置在远程服务器上添加 ~/.netrc 文件。不建议这样做。

machine https://gir.url
login xxx
password xxx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-17
    • 2019-06-17
    • 2010-09-08
    • 2012-08-28
    • 1970-01-01
    • 2019-09-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多