在脚本

时间:2017-12-07 10:56:18

标签: windows git bash

我想创建一个脚本/工具,它贯穿我的存储库并进行git pull。脚本问我GitLab / Bitbucket的传递/无论如何,我输入它并且脚本同步在那里托管的所有repos。我遇到的问题:我不知道如何自动输入密码。

例如,像这样的选项不起作用:

yes ${STORED_PASSWORD} | git pull
echo ${STORED_PASSWORD} | git pull

从谷歌搜索和阅读Stack Overflow,我明白了:

  • 将密码作为网址的一部分传递并不安全;
  • 凭据需要为 每个 远程仓库输入一次密码,并且在脚本完成其工作后它将继续存储密码。

我使用的是Windows的git shell,并且没有expect工具。有没有选择或解决方法?

1 个答案:

答案 0 :(得分:0)

正如其他人所指出的那样,使用SSH而不是HTTPS在您的使用案例中非常有意义,因为它不那么笨拙,也不会让您不小心向机器的其他用户泄露您的密码。

如果您坚持使用HTTPS并传递密码,则此方法可行:

git pull https://myusername:${STORED_PASSWORD}@mygithost.com/my/repository