我正在開發一個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」行。我不確定所有的輸出是什麼意思。我在那裏錯過了什麼?
確保你的第二個鉤子有正確的路徑並被標記爲可執行文件(如果沒有的話,git會默默地跳過它,沒有警告或任何東西)。 – torek 2015-01-09 19:28:58
這兩個鉤子都是rwxr-xr-x。所以他們應該可以由任何用戶執行。無論如何,我應該只是777嗎?我檢查並重新檢查了幾次路徑,並與服務器匹配。 – 2015-01-09 19:33:55
不應該需要可寫。檢查鉤子是否在推動時運行,例如,「echo working 1>&2」 – torek 2015-01-09 19:36:37