[英]Automation of git pull using PHP code
我正在努力将“git pull”从位桶服务器到我的godaddy共享主机的任务自动化。 我已经在 Godaddy 服务器上安装了 Git,并且能够从命令行远程'git clone' 、 'git pull'等。 但是现在我想编写一个 PHP 代码来直接从浏览器运行“git pull”。
PHP 函数exec()可用于此,但 git pull from bit-bucket 需要密码。 我在互联网上搜索了很多,但找不到如何从 PHP 代码中提供密码。
注意:我尝试在 2 个服务器(Godaddy - Bitbucket)之间设置无密码身份验证,但没有奏效。 所以我只剩下上面的方法了。
编辑:我已经完成了设置,现在可以一键更新 Godaddy 服务器。 但是,由于 Godaddy 服务器的限制,PHP 代码部分对我不起作用。 因此,我为此创建了一个批处理脚本,对服务器进行无密码身份验证和自动 git pull 命令。 以下是执行此操作的步骤(可能对遇到类似问题的任何人都有帮助): http : //abhisheksachan.blogspot.in/2014/04/setting-up-godaddy-shared-hosting-with.html
如果您使用 https 而不是 ssh,您可以直接在请求中指定用户/密码:
git克隆:
exec("git clone https://user:password@bitbucket.org/user/repo.git");
git拉:
exec("git pull https://user:password@bitbucket.org/user/repo.git master");
暴露密码的替代方法:
更新:如果您需要获取 exec 命令输出以进行调试或验证,您可以将数组参数传递给它,然后使用标准迭代技术将其输出到您选择的位置。 这是一个简单地打印输出的示例:
function execPrint($command) {
$result = array();
exec($command, $result);
print("<pre>");
foreach ($result as $line) {
print($line . "\n");
}
print("</pre>");
}
// Print the exec output inside of a pre element
execPrint("git pull https://user:password@bitbucket.org/user/repo.git master");
execPrint("git status");
由于$result
数组将被exec()
附加到而不是覆盖,因此您还可以使用单个数组来保留 exec 命令结果的运行日志。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.