2013-01-24 81 views
3

我有一個網站,在生產服務器上有大約15,000個文件。遠程開發人員現在正在執行網站上的大部分工作,但我偶爾也需要進行一些編輯。很明顯,我們需要一些版本控制,所以我正在嘗試設置git。使用git來管理生產網站?

我真的想保持設置簡單明瞭。我們不需要任何集成商來查看我們的變化 - 我們完全信任將變更推送到生產站點。我也沒有看到任何需要將更改發佈到臨時服務器之前,因爲沒有任何可以測試的地方我們無法在本地計算機上進行測試。我基本上只想要一些能夠阻止我們打破對方文件的東西。下面是這種情況我已經記:

  Production Server 
       ↗↙ ↖↘   
Developer1(LAMP) Developer2(WAMP) 

問題:

  1. 這是否工作流程是否合理對於一個團隊的兩個開發者(其中一人只能使偶然的編輯之一)還是有更好的?

  2. 在開發人員和生產服務器之間添加登臺服務器有什麼優勢嗎?

  3. 我假設生產服務器應該是一個帶有指向webroot文件夾的post-receive鉤子的裸回購,我們會將副本克隆到每個開發人員的機器,然後通過git commit/git push來啓動任何更改生產?

  4. 是否有任何簡單的方法在生產服務器上創建裸回購,然後將該網站的現有15,000個文件添加到它?或者我必須將它們下載到本地工作站上的克隆庫,然後執行git add/commit/push以將它們加載到生產服務器庫中? (他們可能需要將近13小時才能上傳。)

謝謝!

回答

2

工作流程本身沒有問題。但通常「規範」存儲庫是單獨的,並且您可以使用rsync等其他機制手動部署到生產服務器。這樣:

  1. 您的生產服務器更新與您的開發工作流無關。如果您的生產服務器(永遠!)在代碼更改後需要完成任何工作 - 重新啓動Web服務器,刷新緩存,更改模式等等,突然間生產系統問題會干擾您更新代碼的能力。

  2. 您不必擔心無意中泄漏訪問您的.git目錄並暴露您的所有源代碼和開發歷史記錄。

  3. 它需要兩次事故才能破壞網站(破壞大師部署)而不是一個(破壞大師)。

  4. 也許不是你們兩個人關心的問題,但是「更新站點」按鈕與「更新代碼」按鈕具有不同的權限是很有用的。

登臺服務器存在像生產,但易碎。你只有兩個開發人員,但你已經在使用截然不同的操作系統;我相當確定至少有一個你沒有使用與生產相同的開發環境。 :)

並且不,您不能將文件添加到裸存儲庫。你需要一個工作副本來處理工作樹。