当我推送到远程原始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/