设置 Git 以管理远程网站

Set up Git to manage remote website

我一直在尝试设置 Git 来管理我的网站,如 this tutorial and this one and this one and this one and this gist 所述。

总结一下我所做的:(深入的解释可以在教程中找到)

  1. /home/usr/mysite.git/
  2. 中的网络服务器上设置一个裸 git 存储库
  3. 在裸仓库中,创建一个可执行文件 post-receive 挂钩 GIT_WORK_TREE 设置为我的网络文档根目录,/home/www/mysite.com/
  4. 在我的本地 git 仓库中,添加远程仓库。这是来自我的 .git/config :

    [remote "live"]
    url = ssh://user@ssh.myserver.com/home/usr/mysite.git
    fetch = +refs/heads/*:refs/remotes/live/*
    
  5. 推送:git push live +master:refs/heads/master

这是我得到的输出:

Everything up-to-date

太棒了!
但它不是:我的远程 Web 文档根 /home/www/mysite.com/ 仍然是空的
我已尽我所能,但无法将文件推送到我的远程文件夹中。

你知道我做错了什么,或者我可以做些什么来调试它吗?

尝试 GIT_WORK_TREE 而不是 GIT_WORKING_TREE

您的 .git/config 应该在 [remote "live"] 部分中包含以 push 开头的行。否则它仅配置为从该远程获取。

存储库实际上可能是最新的。通过 运行 git show 在您的服务器上验证。 相反,也许您的 post-receive 挂钩实际上并未执行。如果是这样,可能是因为它没有设置为可执行文件?