【发布时间】: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 的用户有何不同?
-
这是在共享远程服务器上运行的。