【发布时间】:2012-05-09 09:39:51
【问题描述】:
我最近开始在我的日常工作流程中使用 Git,我真的很喜欢使用它。
我在我的 VPS 上名为 website.git 的文件夹下有一个裸在线 repo (git init --bare --shared),并在需要时将更改从本地推送到它,这绝对没问题。现在,当我在本地存储库中保存数据时,我会将更改推送到网上,但随后我也必须手动将文件移动到 public_html 文件夹中,正如您可以想象的那样,这真的很痛苦。
我已尝试使用http://toroid.org/ams/git-website-howto 中描述的 git 挂钩,但它的权限对我不起作用。
public_html 和 website.git 文件夹都归 www-data:developers 所有,但是当 post-receive 挂钩启动时,它无法取消链接旧文件,并且任何新文件都自动归 jack:jack 所有这是我通过 SSH 连接到服务器的用户。
我的 hooks/post-receive 文件是可执行的并且包含:
#!/bin/sh
GIT_WORK_TREE=/home/web/website.com/public_html git checkout -f
而我的在线回购存储在
/home/web/website.com/website.git
我做错了什么?
【问题讨论】:
标签: git repository githooks