gpt4 book ai didi

php - 使用 PHP 代码自动化 git pull

转载 作者:IT王子 更新时间:2023-10-29 00:59:14 27 4
gpt4 key购买 nike

我正在努力将 'git pull' 从 bit-bucket 服务器到我的 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");

pull :

exec("git pull https://user:password@bitbucket.org/user/repo.git master");

暴露密码的替代方法:

  • 在目标系统上使用无密码 ssh key 。
  • 为 https 使用客户端证书。

更新:如果您需要获取 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() 追加而不是覆盖,您还可以使用单个数组来保存结果的运行日志执行命令。

关于php - 使用 PHP 代码自动化 git pull,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23136044/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com