如何在命令行上为“git remote”命令提供密码?

时间:2016-02-10 05:40:55

标签: git

我必须编写一些脚本来自动执行“git remote”命令。但是这些命令在调用时会提示输入密码。我怎样才能使命令不会提示输入密码,脚本将在没有提示的情况下运行。

2 个答案:

答案 0 :(得分:2)

使用 git-credential-store

如果您使用Git助手存储,它将为特定请求模式提供所需的身份验证,并将该模式​​与凭证文件进行比较。只要商店有权访问凭证文件,它就不应该提示您输入用户名或密码。有关此技术的更多信息,请参阅Git Documentation

此过程会将未加密的密码存储在磁盘上,仅受文件系统权限的保护。

$ git config credential.helper store

$ git push http://example.com/repo.git

Username: <type your username>

Password: <type your password>

如上所述,此技术存在缺陷,您的凭据未加密。

答案 1 :(得分:1)

在脚本上存储密码不是一件好事。

最好的方法是将SSH公钥添加到git远程存储库

1)在您的主目录ssh-keygen -t rsa中并将~/.ssh/id_rsa.pub复制到远程git存储库

2)现在,如果您使用的是用于git远程命令的SSH类型URL,它将不会要求您输入密码。

.git/config文件中检查它。在远程部分中,看到它具有ssh类型或https类型URL

如果是https类型,则按照命令

将其更改为ssh类型
git remote set-url origin git+ssh://git@gitlab.com/repository.git

现在它不会要求您提供密码。

如果您计划在多个系统上运行此脚本,则会为所有系统生成公共ssh密钥,并将它们添加到远程存储库中。