2013-07-06 54 views
2

因此,我有一個登臺服務器設置,我想要做的是當有人推到非主分支時更新登臺服務器的目錄。我的電流接收後鉤的樣子:Git Post Receive Hook:將當前工作分支更新到登臺服務器

echo "post hook is on the run!" 

while read oldrev newrev ref 
do 
    echo "$ref" 
done 

unset $(git rev-parse --local-env-vars) 
cd ../staging/bikereport 
git fetch 
git pull origin $ref 

echo "Post receive finsihed" 

但是我沒有看到的變化,我想在服務器上,並遠程回報「已經跟上時代的」,這讓我覺得它是從主或拉什麼?

這不是一個優雅的解決方案,但我們是一個非常小團隊在單個項目上工作。理想的解決方案是將每個分支保存到登臺服務器中的新目錄,然後每次只更新該目錄。

回答

1
cd ../staging/bikereport 
git fetch 

請注意:你的git目錄staging/bikereport回購。
這是仍然掛鉤正在運行。

您需要設置GIT_DIR/full/path/ofstaging/bikereport/.git(和可以肯定的,設置GIT_WORK_TREE/full/path/ofstaging/bikereport),以便命令,從運行回購工作。
你需要取消設置GIT_INDEX_FILE

有關更多詳細信息,請參閱「Why doesn't setting GIT_WORK_TREE work in a post-commit hook?」。

您鉤子應該開始:

#!/bin/sh 
unset GIT_INDEX_FILE 
export GIT_WORK_TREE=/full/path/ofstaging/bikereport/ 
export GIT_DIR=/full/path/ofstaging/bikereport/.git/