2014-02-19 40 views
0

我想为git创建一个脚本,当更新到repo时触发,并在远程服务器上执行“git pull”。自动Gitpull脚本?

我有其中POST消息被设定为我们的服务器上的URL一个非常基本的版本,这将有内容

<?php `git pull`; 

在这里面,有没有问题。然而,开发域实际上是一个虚假的域,nginx重定向到我的服务器(url.dev),所以我不能用这种方式指向它。我的想法是将另一个活动域指向开发服务器上的子文件夹,因此无法访问顶级目录,但当然从该目录运行“git pull”将无法工作。有没有反正在PHP运行该命令,以便它“CD”进入正确的导演和Gitpulls或这是不可能与PHP?

回答

0

如果添加了公共密钥到运行脚本(通常是www数据)的用户,你可以做到这一点

system("/path/to/executable/git pull;echo \"\nLast commit\"; /path/to/executable/git log -2;"); 
+0

我将如何运行呢?作为一个PHP脚本? – realdannys

+0

是的,首先要确保www-data用户可以通过ssh密钥登录到git服务器,然后尝试一个git pull,如果一切正常,这个脚本会做同样的事情。 – sathia

+0

好,我会给这个去。目前我的用户是nginx。不幸的是,我不能通过命令行交换nginx用户,所以很难判断我是否可以做到这一点,没有主文件夹或其他任何东西。 – realdannys