GIT試圖實現工作流的新手。如何強制GIT post-receive hook不被客戶端執行
我們當地的辦公室設置使用與Apache,Linux等共享的Debian Samba磁盤。因此,我們克隆了w:/webs/site.com/site.git
類型的「本地路徑」中的項目。這是BARE回購。
我們已經創建了一個bash腳本爲位於W A「後收到」掛鉤:/webs/site.com/site.git/hooks/post-receive至極我們以爲會被執行「 Linux的」蠢貨像`/home/samba/webs/site.com/hooks ......包括根據COMMITED分支條件腳本檢出類似:
GIT_WORK_TREE=/home/samba/webs/site.com/html git checkout -f $BRANCH
的問題是,當我們從我們的tortoiseGIT本地複製到原始分支的掛鉤掛鉤失敗:
遠程:致命:無法切換到'C:/ Program Files (x86)/Git/home/samba/webs/site.com/html':沒有這樣的文件或 目錄w:/webs/site.com/site。 git
我們理解的意思是客戶端GIT正在執行WORK_TREE或整個掛鉤腳本。
問題是我們打算通過SSH和其他方式訪問回購站,因此如果我們使用Windows本地路徑,那麼當我們從非Windows本地網絡客戶端推送時,這些路徑會失敗。另一種方法可能是通過SSH即使在本地提交回購協議,但我們認爲這樣做效率很低,只會出現這個鉤子問題。
我們可以使用的任何建議和/或GIT變量可以兼容嗎?謝謝。
由於鉤子的性質,windows客戶端無法執行鉤子,它是一個bash腳本,在Windows中沒有這樣的解釋器 – 2012-07-24 22:36:20
客戶端通過GIT解釋器執行bash,所以它確實不是解決方法是使用git repos本身的相對路徑。回答如下: – luison 2012-07-25 17:38:18
不知道,謝謝 – 2012-07-25 18:26:22