2012-05-21 158 views
1

有由一些開發商共享Web服務器的web項目,使我建立的Git回購該項目。
但我仍然有一些關於如何組織它的疑問。的Git回購 - 在Web服務器

假設我有我的web項目中/var/www/

一些問題,想法,我想收到的意見:

是更好地init在同一刊物文件夾中的git倉庫,創建/var/repo/,複製內容和init回購項目的這些副本?

在第一種情況下,我可以分支項目爲superuser,讓人們對這個分公司工作...然後再決定合併分支一次測試?但在這種情況下,我不認爲人們可以在網絡服務器上輕鬆測試他們的工作......他們應該需要一個本地環境。設置爲測試。

如果我創建/var/repo/domain.com,最好創建Vhosts,例如http://git.domain.com以讓開發人員測試他們的承諾工作。

如果我有/var/repo/project.com並想發佈提交的作品(例如將文件複製到/var/www/project.com),我應該如何執行此複製操作?用cp -R?是否有工具可以在需要時執行此更新?

+0

你想要[redmine](http://www.redmine.org/)之類的東西嗎? – Reactormonk

+0

我認爲如果您要共享Web項目(從git簽出)或git回購本身,您需要制定出解決方案。 –

+0

如果您希望開發人員推送到您的服務器上的回購,那麼該回購需要'裸'。 –

回答

0

首先,你真的不應該讓你的web項目庫本身。首先,您應該爲每個人設置一個存儲庫以便訪問。您可以擁有一個主人和一個開發分支,每個人都可以擁有自己的分支,用於Web應用程序的特殊部分。最好的解決方案是將您的存儲庫放在與現場系統不同的服務器上。 如果你不想在本地測試東西,你應該設置一個開發/登臺服務器,以便人們可以在那裏測試。 最好的程序是使用一個部署腳本,例如Capistrano的。

你的程序應該是這樣的: 服務器A:存儲庫與主和分段分支+其他分支,如果開發需要的話。 服務器B:直播系統(可以使用Capistrano的在這裏部署主分支 - 如果你想成爲唯一一個誰能夠部署到實時系統,您不應該添加任何SSH密鑰服務器,但你還是使用另一種身份驗證方法) 服務器C:測試環境(也可能是喜歡你的回購在同一臺服務器上,但我個人更喜歡這種分離也)

現在使用Capistrano的到實時系統與主分支和測試系統鏈接與dev/staging分支。當然,人們應該有ssh訪問登臺服務器的權限。

他們可以使用開發/分期分支推自己的資料庫的修改。之後,他們可以使用'cap staging deploy'將dev/staging分支部署到dev服務器來測試他們的工作。 如果一切正常,您可以簡單地將開發人員分支並檢出主人。使用'git merge staging'將dev/staging分支合併到master中並將其推送到主存儲庫中。之後,「帽子生產部署」將在您的實時系統上安裝所有內容。

這是很容易設置 - 短短配置事情大家做,你將有一個偉大的工作流程。

希望它有幫助。

相關問題