2011-05-25 175 views
5

我寫gitosis的中央資料庫執行git的命令

這是直接從中央存儲庫更新到測試環境

nano /var/git/repositories/holding.git/hooks/post-update

#!/bin/bash 

cd /var/vh/holding; 
git reset --hard; 
git checkout testing; 
git pull; 

這裏我所得到的後推後鉤推我的客戶端(開發虛擬機)

# blah ... 
Counting objects: 57, done. 
Compressing objects: 100% (24/24), done. 
Writing objects: 100% (30/30), 3.42 KiB, done. 
Total 30 (delta 18), reused 0 (delta 0) 
fatal: Not a git repository: '.' 
fatal: Not a git repository: '.' 
fatal: Not a git repository: '.' 
fatal: Not a git repository: '.' 
To [email protected]:holding.git 
    233b5a2..0f46cd8 testing -> testing 

顯然,我試圖告訴git,它應該在哪裏拉,失敗。

在bash腳本中爲指定的工作副本運行git命令的正確方法是什麼?

+0

這可能,甚至可能記錄(需要檢查手冊頁)GIT_DIR設置爲'。'。同時處理你的鉤子功能.... – sehe 2011-05-25 10:35:31

回答

5

如前所述herethere,你可以先所有Git命令有:

env -i 

,以確保有沒有副作用,例如,一個GIT_DIR環境變量可能先前已經組。
env -i或簡單地:unset GIT_DIR

0

/var/vh/holding git存儲庫?即你運行了git init,設置你的遙控器,設置它來跟蹤你的hold.git目錄等。此外,如果您不是從您推動的同一回購協議中獲得回報,那麼您不應該需要resetcheckout