如何在git上手动运行hook post-receive?

时间:2012-02-06 11:16:19

标签: git

我已经通过Git将网站推送到我的远程服务器,但收到了错误

cannot run post-receive: No such file or directory

所以这些东西在服务器上,它还没有部署到我的/ public文件夹。

但我确实有一个收到后的文件,所以我不确定为什么找不到它。现在我认为我需要做的就是手动运行这个post-receive钩子来做结账,虽然我不知道怎么做......

1 个答案:

答案 0 :(得分:22)

hook是可执行的shell脚本。如果需要手动运行,可以从命令行执行它,尽管如果你的repo有多个头(也就是你使用分支),构造预期的stdin输入有点单调乏味。应该有一个低级命令为你做这个,但我不知道这个。

假设你的git repo中有一个bash shell和一个分支...

# Print the log with full hashes and commit subject, so that you can
# figure out which hashes to use for the FROM and TO range.
/path/to/repo$ git log --pretty=%H\ %s

# assuming the FROM commit identifies as 999988887777
# and te TO commit identifies as 000011112222
# (Note: use the full length hashes; I've shortened them for the example)
/path/to/repo$ .git/hooks/post-receive <<MARK
999988887777 000011112222 refs/heads/master
MARK

......上面应该像真实一样工作。