就像很多,我试图post-receive在服务器端远程git上创建一个钩子.以下是我的代码:
cd [LIVE SITE DIR] && git pull origin master | wall
我添加了wall它,以便可以播放,我可以收到通知.我注意到的一件事是,当我跑步时./post-receive,一切正常.
Broadcast message from root (Tue Oct 8 14:58:13 2013):
Updating 7ebd925..1a25791
Fast-forward
html/header.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Run Code Online (Sandbox Code Playgroud)
但是,当我试图做一个git push,./post-receive似乎被调用但我收到了以下空广播:
Broadcast message from root (Tue Oct 8 14:53:32 2013):
Run Code Online (Sandbox Code Playgroud)
我试图将命令包括在内pwd,并且两种情况下一切正常.除了它似乎返回一个空输出.lspost-receivegit pull
已经完成了SO中提供的所有建议但无济于事:(.非常感谢任何帮助或建议.
谢谢!
确保你的post-receive钩子未设置GIT_DIR,或者仍然会引用钩子的git repo,而不是你刚cd进入的实时站点的git repo .
cd [LIVE SITE DIR]
unset GIT_DIR
git pull
Run Code Online (Sandbox Code Playgroud)
要么:
cd [LIVE SITE DIR]
env -i origin master
Run Code Online (Sandbox Code Playgroud)
要么:
cd [LIVE SITE DIR]
git --git-dir=[LIVE SITE DIR]/.git pull
Run Code Online (Sandbox Code Playgroud)