我想使用 git push 来更新我的 (nginx) 网络服务器内容,同时仍保证安全。我可以这样做的一种方法是 ssh 到我的服务器,git pull
从 bitbucket 进入/srv/www
,然后chown -R www-data:www-data .
。
不过,如果能够从我的家用电脑(类似 Heroku)将其推送到那里,那就更巧妙了,但我不确定如何最好地处理权限和所有权问题。
有人对解决这一问题最明智的方法有什么建议吗?
答案1
如果你将 Web 服务器用作 git 服务器,那么你可以采用稍微复杂的方法,即使用 git hooks(将更新代码放入脚本中,并在每次 git 更新时调用该脚本);一些 git 主机也支持 hooks,但这会复杂得多,因为它们将通过网络调用你的更新通知程序,而不是运行本地脚本
答案2
前言
绝不将任何工作副本放置在站点树内
脸
git archive --remote ...
是你的灵丹妙药
答案3
为了结束这篇文章,考虑到额外的复杂性,1)我将几个不同站点的 html 作为顶级项目的子模块,2)想要将规范源保留在 bitbucket 上,我决定直接ssh
进入,git pull
而不是拥有更多的移动部件。
(感谢其他答案中的信息,让我了解了不同的选择。)