使用git push部署web服务器内容的一个明智的工作stream程是什么?

我想使用git push来更新我的(nginx)web服务器内容,同时保持安全。 我可以做到这一点的一个方法是ssh到我的服务器, git pull从bitbucket git pull/srv/wwwchown -R www-data:www-data .

但是,为了能够从我的家用电脑(La Heroku)推送它,但是我不确定如何最好地处理权限和所有权问题。

有没有人有关于这个最明智的方法的build议?

如果你正在使用你的web服务器作为git服务器,你可以使用唯一稍微复杂的方法来使用git钩子(把你的更新代码放到一个脚本中,并在每个git更新中调用); 一些git主机也支持钩子,但是这将会变得非常复杂,因为他们会通过networking调用更新通知器,而不是运行本地脚本

前言

切勿在网站树内放置任何工作副本

面对

git archive --remote ...是你的银弹

只是为了closures这本书,考虑到额外的复杂性,我1)有几个不同的网站作为顶级项目中的子模块的HTML,2)想要保持在bitbucket的规范来源,我决定只是sshgit pull而不是有更多的运动部分。

(感谢在其他答案,这使我了解不同的选项了解信息。)