当我推送到远程原始git存储库时,我使用了本指南来使用git在我的网站上自动发布更改:

http://www.lwp.ca/james/2010/03/using-git-to-manage-online-website-projects/

这是我的/hooks/post-update文件:

cd ../../public_html/dir/wbg
env -i git pull

这是我的目录结构:

/home/git/wbg.git
/home/public_html/dir/wbg
当我运行时
git push origin master

资源库已更新,但我的Web文件夹仍然为空。有任何想法吗?

编辑:如果将来有任何流量看到此消息,我的真正问题是您的远程来源和目标网站目录都必须是git存储库。您不能仅将其设置为将项目复制到新文件夹,除非该文件夹也是git repo。

最佳答案

离开这里并不多,但是我可以报告说我成功使用了与此类似的方法。

出于我的目的,我将裸服务器存储库称为“Hub”,将面向Web的存储库称为“Prime”。确保已在服务器htdocs目录(Prime)中正确初始化了git存储库,并将更改推送到裸存储库(Hub)或将其引入。

这是我使用的post-update Hook ,位于我的Hub存储库的hooks目录中:

#!/bin/sh

echo
echo "*** Pulling changes into Prime"
echo

cd /path/to/htdocs/ || exit
unset GIT_DIR
git pull hub master

exec git-update-server-info

确保这是可执行文件!如有疑问,只需编辑post-update.sample文件并在完成后删除.sample扩展名即可。回显的文本提供了很好的反馈,表明实际上正在进行复制。如果您没有看到该文本,则表示没有进行更改。而且,如果您不打算将远程存储库称为“集线器”,则将其替换为“origin”或您决定使用的任何内容。

为了预防起见,请确保我的Prime和本地存储库不会过于困惑,我将其作为我的Prime post-commit钩子(Hook):
#!/bin/sh

echo
echo "*** Pushing changes to Hub"
echo

git push hub

然后,我可以将更改从集线器 pull 到本地存储库中。

关于git - 使用git发布到网站,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4938239/

10-14 15:41
查看更多