从私有Git仓库推送/拉取的Bash脚本?

8
我正在尝试找到一种方法,可以编写一个bash脚本,每天午夜自动从我们的私有Github仓库拉取最新代码,并更新我们的开发网站。
由于显而易见的原因,我们的仓库是私有的,但我发现任何类似的方法都需要输入口令。我们的服务器有自己的Github账户来推送和拉取仓库中的代码,但我不知道如何实现自动化操作。
请问有谁能指点一下吗?
1个回答

15
为了自动化推拉操作,您需要设置无密码身份验证。为此,您需要使用ssh(而不是https)。如果您以前没有在github上使用过ssh,或者根本没有使用过,那么您需要执行一些步骤来配置。在您的计算机上生成一个ssh密钥:
$ ssh-keygen -t rsa

请确保不填写密语字段。这将使本地私钥不加密,但在实际的互联网通信中仍然非常安全。

然后,在“账户设置|SSH密钥”下的Github上上传~/.ssh/id_rsa.pub

现在,您应该能够在该机器上进行推送和拉取而无需密码。试一试:

git clone git@github.com:user/repo.git

您可以将这些命令放入您的bash脚本中。如果您需要为多台机器执行此操作,则需要上传每个密钥,或将私钥(~/.ssh/id_rsa)复制到每台机器上。
有关更多信息,请参见GitHub 帮助文档。同时请查看部署密钥页面,因为这可能会为您的情况提供更好的安全性细粒度控制。

“git pull” 怎么办?我在它还是公共的时候克隆了,现在变成了私有的,我无法更新。谢谢! - Julien L
1
git pullgit clone没有什么不同,尽管您可以选择设置不同的拉取和推送URL。我建议您检查您的git remote配置,以确保您的URL正确设置。 - djs

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接