将git存储库发布到远程http服务器

时间:2010-06-07 08:26:21

标签: php git automation github httpserver

我在git存储库上工作,我们构建了一个php社区,但我需要在某处显示它,所以当我推送到存储库时,我正在寻找一种自动将文件上传到远程http服务器的方法。

谢谢/ Victor

2 个答案:

答案 0 :(得分:3)

与Subversion一样,Git也提供了一种钩子机制。查看githooks手册页。基本上你只需要为你的PHP应用程序编写一个checkout和deploy脚本作为post-commit hook。

对于github,你应该看看他们的webhooks机制。

答案 1 :(得分:1)

如果第二台服务器上没有单独的git repo,我会从archive中导出文件:

git checkout-index -a -f --prefix=/target/path/

然后使用sftp与远程服务器同步:

#!/bin/bash
HOST="ftp.example.com"
USER="user"
PASS="pass"
LCD="/var/www/yourdir"
RCD="/www/"
lftp -c "
#debug;
open ftp://$USER:$PASS@$HOST;
lcd $LCD;
cd $RCD;
mirror --only-newer \
       --reverse \
       --verbose \
       --exclude-glob somepattern ";

您可以将此过程自动化为构建脚本(例如Phing), 我们的绑定作为post commit git hook,就像之前提到过的那样。