Abh*_*han 11 php git bitbucket
我正在努力将"git pull"的任务从bit-bucket服务器自动化到我的godaddy共享主机.我已经在Godaddy服务器上安装了Git,并能够从命令行远程"git clone","git pull"等.但现在我想写一个PHP代码直接从浏览器运行'git pull'.
PHP函数exec()可用于此,但来自bit-bucket的git pull需要密码.我在互联网上搜索了很多,但无法找到如何从PHP代码提供密码.
注意:我已尝试在2台服务器(Godaddy - Bitbucket)之间设置无密码身份验证,但它无法正常工作.所以我只留下上面的方法.
编辑:我已完成设置,现在只需点击一下即可更新godaddy服务器.但是,由于对Godaddy的服务器的限制,PHP代码部分对我不起作用.所以我创建了一个批处理脚本,对服务器和自动git pull命令进行无密码验证.以下是执行此操作的步骤(可能对任何有类似问题的人有帮助):http://abhisheksachan.blogspot.in/2014/04/setting-up-godaddy-shared-hosting-with.html
sfy*_*fyn 19
如果您使用https而不是ssh,则可以直接在请求中指定用户/密码:
git clone:
exec("git clone https://user:password@bitbucket.org/user/repo.git");
Run Code Online (Sandbox Code Playgroud)
git pull:
exec("git pull https://user:password@bitbucket.org/user/repo.git master");
Run Code Online (Sandbox Code Playgroud)
公开密码的替代方法:
更新:如果您需要获取exec命令输出来调试或验证事物,您可以传递一个数组参数,然后使用标准迭代技术输出到您选择的位置.这是一个简单打印输出的示例:
function execPrint($command) {
$result = array();
exec($command, $result);
foreach ($result as $line) {
print($line . "\n");
}
}
// Print the exec output inside of a pre element
print("<pre>" . execPrint("git pull https://user:password@bitbucket.org/user/repo.git master") . "</pre>");
Run Code Online (Sandbox Code Playgroud)
由于$result数组将附加到,而不是覆盖,exec()您还可以使用单个数组来保持exec命令结果的运行日志.
| 归档时间: |
|
| 查看次数: |
22086 次 |
| 最近记录: |