2012-06-11 56 views
0

好的,檢查一下。我有一個安裝了git的mac osx服務器。我們用它來進行項目合作。我們想要的是能夠推送到服務器上的非裸倉庫,以便我們可以查看其上的網站。問題是,一個非裸存儲庫有一個用戶與主人簽出,所以無法推送給主。沒有用戶的Git遠程服務器非裸露

我發現工作的唯一方法是推到另一個分支,然後將它合併到主分支,這是費時和無聊。

那麼,有沒有辦法推送到遠程服務器上的主分支,並能夠查看服務器上的網頁?

回答

1

解決這個問題的常見方法是擁有一個裸機存儲庫,該存儲庫會將HEAD簽出到正確的目錄as described here。從本質上講,你將創建一個post-receive鉤,做:

GIT_WORK_TREE=/var/www/whatever git checkout -f 

然後你只需推到裸庫,以便部署。這種方法相對於推送到非裸存儲庫的優勢,您不會以/var/www/whatever下的.git目錄,只是項目中的文件。

+0

謝謝,我會檢查一下。 – Spoeken

+0

好吧,假設我不想將文件放在與git存儲庫所在文件夾相同的文件夾中。在我的情況下,我的存儲庫所在的文件夾名爲xsessions,我希望部署文件的文件夾是xsessions/www。我怎麼會在post-receive hook中寫這個? – Spoeken

+0

你的意思是你想要將文件部署到'xsessions/www'?否則我不明白你的第一句話... –