代码之家  ›  专栏  ›  技术社区  ›  user3813942

具有多个用户的Shell脚本中的Git fetch

  •  0
  • user3813942  · 技术社区  · 6 年前

    我试图在linux中编写一个shell脚本,从git存储库中提取在最近提交中提交的所有文件。我这样做的方式是运行git fetch来获取最新的commit inof,然后git show来捕获文件名,然后我分别提取特定的文件。脚本需要由多个用户运行,所有用户都可以访问git repo。我把它设置为询问用户名和密码,然后运行:

    git获取” https://USER:PASSWORD@GIT_URL "

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

    所以,我更改了脚本,所以它只调用git fetch,用户在提示时输入密码(它询问,password for,” https://USER@GIT_URL ": ). 现在的问题是其他用户需要我的密码。我以为用户会被从系统登录中删除。有人知道我怎样才能在最近的提交中只更改文件而不遇到这些问题吗?谢谢您。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Ela    6 年前

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

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

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