2011-11-28 173 views
1

我正在嘗試與我的朋友建立一個體面的發展模式。計劃是我們在自己的計算機上進行獨立開發,然後推送到開發服務器進行測試,然後從開發服務器推送到生產服務器(Heroku)。如何在我的服務器上設置非裸Git回購?

問題是,我不能讓git行爲。也許我只是不知道從根本上理解發生了什麼。我在開發服務器上設置了回購協議,但是當我將其克隆到我的個人計算機時,我無法「推」回它,因爲它抱怨推送到非裸回購。所以我試圖分支回購,並推動分支機構,但現在我得到了很多快速前瞻性陳述,而且我也不認爲我想要那些。

所以我的問題是這樣的。如何設置服務器,使其全部「工作」?服務器不能是裸露的回購,它需要在其中的代碼,所以我們可以測試應用程序。我們希望能夠順利地從回購計劃推到我們自己的開發計算機。服務器需要能夠推送到Heroku(它可以做到這一點)。這是在我自己的服務器上,所以我可以完全訪問我需要的任何工具。 (Ubuntu Server Edition 11.04)。

謝謝!

回答

2

您無法默認推送到非裸存儲庫的原因是非裸存儲庫具有與其關聯的檢出工作副本。將更新推送到已簽出的分支時,除非專門運行命令來更新它(可以使用post-receive鉤子),否則工作副本將與其自己的存儲庫不同步。如果你知道這一點,並且你想推入一個非裸倉庫,你可以將receive.denyCurrentBranch配置屬性設置爲ignore,git將允許推送。有關更多詳細信息,請參閱我前段時間(可能由於更新)寫的blog post,其中描述了用於我自己的網站的類似設置。

請注意,除了開發和生產服務器(每個服務器都有它們自己的非裸存儲庫)之外,我還有第三個存儲庫,一個裸存儲庫,在將它們發送到dev之前,我首先推送更改。這樣,我只能從一個地方推送到開發服務器,這有助於保持同步。

+0

我想你最後的想法是我要如何做到這一點。做一個新的裸回購,並推動一切。然後,爲了測試,我可以從裸倉庫中取出,並測試所有的代碼。也許還有一個額外的步驟,但它看起來更好。謝謝! –

0

爲了闡述@David Zaslavsky的評論,我會設置一個裸回購,推到大部分時間,然後使用類似git-deploy的內容推送到您的開發服務器。你得到和Heroku一樣的語義,不需要Heroku。

相關問題