2011-06-09 111 views
1

我最近從svn轉換而來。 我的服務器是Windows下(不要怪我,這是不是我的選擇:}git windows post pull

我創建了一個回購有兩個分支「主」和「穩定」

在我的服務器我想要的。 。從穩定分支獲得文件

我做:

git clone git://url/.git src 
cd src 
git checkout --track -b stable origin/stable 

以前我有一個蝙蝠腳本

cd my_repo_dir 
svn update 
echo APPLICATION_STAGE = 'production' > conf\__init__.py 
net stop apache2.2 
net start apache2.2 

和它的工作,現在用git

cd my_repo_dir 
git pull 
echo APPLICATION_STAGE = 'production' > conf\__init__.py 
net stop apache2.2 
net start apache2.2 

沒有什麼混帳拉後執行,無論是成功,還是先進的日期。 它只是退出提示沒有任何警告。

我想過掛鉤。 我已經創建:

.git/hooks/post-receive 
.git/hooks/post-update 

兩個文件具有相同的內容:

echo APPLICATION_STAGE = 'production' > conf\__init__.py 
net stop apache2.2 
net start apache2.2 

和不,它不執行要麼... 也許我缺少解釋報關行(#/ bin中!/sh on * nix) 但我不確定它是什麼在windows上...

回答

3

幾點:

  • 確保您已在路徑git.exe。做一個where git並且如果使用git.cmd必須得到類似

    C:\Program Files (x86)\Git\bin\git.exe 
    

    (從C:\ Program Files文件(x86)的\的Git \ CMD \ git.cmd),你必須爲它做call git pull繼續執行。我會說增加git.exe到路徑並開始使用它。

  • 即使在Windows上,您也必須擁有shebang - #!/bin/sh以便掛鉤正常運行。

  • 如果你想要一個鉤子在pull上運行,你可能想要使用post-merge鉤子。 post-receivepost-update在您推送到它們時在遠程回購站上運行。

1

git可能是一個真正的可執行文件的批處理包裝。使用call git pull

只要從遠程位置推送內容,只有從文檔中可以看出這些掛鉤纔會觸發。所以他們被忽略了pull