2012-06-20 61 views
0

我按照本教程'Using Git to manage a web site',使用Tower提交并将我的本地仓库推送到远程服务器。推进以下消息成功:Git站点部署 - 在接收后钩子检出不工作

Pushing to ssh://[email protected]/~/git/tprevo.git 
stdin: is not a tty 
Counting objects: 40, done. 
Delta compression using up to 2 threads. 
Compressing objects: 100% (37/37), done. 
Writing objects: 100% (40/40), 171.95 KiB, done. 
Total 40 (delta 3), reused 0 (delta 0) 
To ssh://[email protected]/~/git/tprevo.git 
* [new branch]  master -> production 
updating local tracking ref 'refs/remotes/production/production' 

Successfully created tracking connection. 

我核实,我的后收到钩正在执行,但checkout命令不被推动的代码添加到什么,我相信我已经设置为我的工作目录。我一直试图弄清楚这一点。

后得到:

#!/bin/sh 
GIT_WORK_TREE=/home/tprevo/public_html/tprevo git checkout -f 

我是新来的Git,非常热衷于学习。调试这个最好的方法是什么?

+0

您是否检查'/ home/tprevo/public_html/tprevo'上的权限?它应该可以由你ssh进入的用户写入。 –

+0

是的,它是可写的,我暂时将其设置为777,但文件从未检出到该路径。如果路径不可写,是否会出现错误消息? – okyanet

+0

'/ home/tprevo /'和'/ home/tprevo/public_html'至少需要'111'('a + x')。 –

回答

7

好吧...我有一个类似的设置...是你的文件可执行文件? 请检查文件的属性...

ls -la post-receive 

如果不是可执行文件,那么你需要属性吧...

sudo chmod +x post-receive 

UPDATE

我注意到您有一个名为分支可能你希望在结帐命令中针对您的收到后挂接...

git checkout -f production 
+0

就是这样 - 我没有特别检查'production'分支。我对这个设置非常满意,很简单的部署到我的开发和生产环境。非常感谢! – okyanet

+0

很高兴能提供帮助:-) –

+0

工程就像一个魅力! –