2015-01-09 50 views
0

我正在開發一個Wordpress中的網站,我已經構建了一個模板和一個插件。對於我的git工作流程,我希望能夠在服務器上分別使用兩個不同的回購站跟蹤模板和插件。現在我把模板提交到服務器上的裸回購,然後執行該後收到鉤:Git post-receive鉤子在同一臺服務器上的兩個回購

#!/bin/sh 
export GIT_WORK_TREE=/home/user/public_html/wp-content/themes/custom_theme 
export GIT_DIR=/home/user/public_html/custom_theme.git 
git checkout -f master 

而且文件的主題文件夾顯示爲目的,當我推。但是當我試圖爲插件設置完全相同的東西時,我沒有得到任何結果。這裏是後收到鉤的插件裸回購:

#!/bin/sh 
export GIT_WORK_TREE=/home/user/public_html/wp-content/plugins/custom_plugin 
export GIT_DIR=/home/user/public_html/custom_plugin.git 
git checkout -f master 

當我推到插件裸露的回購協議,現場插件目錄保留爲空,我甚至不看任何錯誤日誌。這是否與在同一臺服務器上使用兩個回購有關?我嘗試在兩個鉤子的開始處添加「未設置的GIT_DIR」以查看是否有任何區別(它沒有)。我也已經檢查過文件權限,並且所有用戶都可以執行這兩個鉤子。至少有一種方法可以手動運行插件鉤子並查看shell響應是什麼?

編輯: 我在鉤子上添加了「echo working 1> & 2」來測試它是否觸發(根據torek的建議)。提交測試的變化,推動服務器裸露的回購協議後,這裏是我的了:

stdin: is not a tty 
Counting objects: 5, done. 
Delta compression using up to 12 threads. 
Compressing objects: 100% (3/3), done. 
Writing objects: 100% (3/3), 376 bytes | 0 bytes/s, done. 
Total 3 (delta 1), reused 0 (delta 0) 
remote: Already on 'master' 
remote: working 
To [email protected]:public_html/custom_plugin.git 
    f1cc0bb..9a71b5b master -> master 

所以它似乎像鉤子觸發正確的?我得到了上面輸出的「remote:working」行。我不確定所有的輸出是什麼意思。我在那裏錯過了什麼?

+0

確保你的第二個鉤子有正確的路徑並被標記爲可執行文件(如果沒有的話,git會默默地跳過它,沒有警告或任何東西)。 – torek 2015-01-09 19:28:58

+0

這兩個鉤子都是rwxr-xr-x。所以他們應該可以由任何用戶執行。無論如何,我應該只是777嗎?我檢查並重新檢查了幾次路徑,並與服務器匹配。 – 2015-01-09 19:33:55

+1

不應該需要可寫。檢查鉤子是否在推動時運行,例如,「echo working 1>&2」 – torek 2015-01-09 19:36:37

回答

0

在盯着它一天之後,似乎現在工作得很好。

相關問題