设置 Git 以管理远程网站
Set up Git to manage remote website
我一直在尝试设置 Git 来管理我的网站,如 this tutorial and this one and this one and this one and this gist 所述。
总结一下我所做的:(深入的解释可以在教程中找到)
- 在
/home/usr/mysite.git/
中的网络服务器上设置一个裸 git 存储库
- 在裸仓库中,创建一个可执行文件 post-receive 挂钩
GIT_WORK_TREE
设置为我的网络文档根目录,/home/www/mysite.com/
在我的本地 git 仓库中,添加远程仓库。这是来自我的 .git/config
:
[remote "live"]
url = ssh://user@ssh.myserver.com/home/usr/mysite.git
fetch = +refs/heads/*:refs/remotes/live/*
- 推送:
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 挂钩实际上并未执行。如果是这样,可能是因为它没有设置为可执行文件?
我一直在尝试设置 Git 来管理我的网站,如 this tutorial and this one and this one and this one and this gist 所述。
总结一下我所做的:(深入的解释可以在教程中找到)
- 在
/home/usr/mysite.git/
中的网络服务器上设置一个裸 git 存储库
- 在裸仓库中,创建一个可执行文件 post-receive 挂钩
GIT_WORK_TREE
设置为我的网络文档根目录,/home/www/mysite.com/
在我的本地 git 仓库中,添加远程仓库。这是来自我的
.git/config
:[remote "live"] url = ssh://user@ssh.myserver.com/home/usr/mysite.git fetch = +refs/heads/*:refs/remotes/live/*
- 推送:
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 挂钩实际上并未执行。如果是这样,可能是因为它没有设置为可执行文件?