2013-05-07 94 views
0

我正在使用Ubuntu 12.04服務器上的網站。當我將代碼推送到我的網站時,我希望我的鉤子自動在我的apache文件夾中的代碼pull。下面的命令更新我的網站,資料庫目前的主人沒有任何問題:無法拉入git鉤子(bash腳本)

cd /var/www/www.foo.net 
git pull 

post-update掛鉤就是應該這樣做自動,但我保持我每次推得到同樣的錯誤。請注意,每次都會正確執行推送。該腳本看起來像這樣(不相關的代碼遺漏):

#!/bin/bash 
BRANCH=$(git rev-parse --symbolic --abbrev-ref $1) 
case "$BRANCH" in 
"somebranch") 
     echo "You are pushing to somebranch!" 
     cd /var/www/www.foo.net 
     pwd 
     git pull 
     ;; 
esac 

在我看來,這看起來像它應該工作,特別是考慮到調試輸出是什麼,我希望它是。但它不起作用。我總是得到下面的輸出:

remote: You are pushing to somebranch! 
remote: /var/www/www.foo.net/ 
remote: fatal: Not a git repository: '.' 

注意它是如何報道,這是在正確的目錄。而且,就像我上面說的,我可以在該目錄中拉沒有問題。 /var/www/www.foo.net/一個git倉庫。

我也用(cd /var/www/www.foo.net/ ; git pull)但無濟於事嘗試。我也不認爲它可以與權限有關;我正在使用Gitolite,並且可以通過使用Gitolite設置的帳戶將其拉到本地存儲庫。

任何想法?我一點都不喜歡。

回答

1

如果/var/www/www.foo.net/是一個有效的git回購嘗試

 

git --git-dir=/var/www/www.foo.net/.git --work-tree=/var/www/www.foo.net pull 

這將導致在FF上拉。

+0

確實如此!你知道爲什麼其他的東西不起作用嗎? – 2013-05-07 20:06:31