2013-01-31 34 views
2

我需要一種方法在發佈之前在線測試更改。 到目前爲止,git可以從我讀的內容中扮演一個角色。我沒有什麼知識,當談到與git所以...使用git分支進行在線開發和測試

初步信息是: 1)網站域名爲:http://www.domain.com 2)是使用「*」通配符DNS重定向 * .domain.com => www.domain.com

1)我想我應該使用一個開發分支......但我該如何測試該分支直播? 2)我將使用什麼鏈接訪問該分支,以及如何設置它?

回答

0

我假設你已經閱讀過一些git教程,我喜歡推薦Git Immersion

您可以使用簡單的設置開始 - 保持兩個分支 - 一個(主)與穩定的,經過測試的代碼和一個與您開發的代碼Here is a good article描述了一個好的,但全面的git分支模型,所以你可以看到它在更大的項目中的樣子。

很好,有一些自動的方式將代碼部署到服務器。當你有一個(使用一些檢查存儲庫的CI工具或腳本,複製必要的文件,運行數據庫遷移等)時,很容易將應用程序部署到任何位置(例如指定的測試服務器)。我不會冒險測試生產服務器上的新代碼,但如果您缺錢,可以這樣做。 請記得爲開發應用程序設置數據庫的單獨副本!

當您穩定代碼並且可以在生產中使用它時合併開發分支與主分支

+0

感謝您的文章和評論...我如何自動化部署代碼到服務器的方式? cron工作還是什麼?我沒有pb手動合併開發分支給主人,一旦我完成了....我想要的是當我需要編程的東西....創建開發分支...所以imeddaitly後,該命令開發。 domain.com鏈接應該指向新的分支......那麼我該怎麼設置呢? – user2030809

+0

Cron不是一個好主意。你應該爲你的特定配置編寫一個腳本,並在你的服務器上有新版本時運行它(這是在向倉庫提交一些提交之後發生的)。您可以使用ssh在您的服務器上運行'git clone'。 –

+0

使用「git hooks」可以自動執行提交或推送到存儲庫後的操作(請訪問Google以獲取詳細信息)。 –

0

爲此,您需要將開發分支部署在服務器上的其他位置並使用子域。
例如,www.domain.com將是您的產品,dev.domain.com將成爲您的測試分支。
子域名將指向服務器上的其他位置。
您可以在Web服務器配置中進行設置。
爲了更安全,我還建議使用密碼或IP白名單來限制開發子域的訪問。

如果您在服務器上告訴我有關您的配置的更多信息,我可能會向您顯示配置。
對於初學者,您使用什麼Web服務器?

+0

嗨koleror,我有一個託管rackspace服務器與CentOS ...我回答你的問題嗎? – user2030809

+0

不是。好吧,基本上,你有完全控制你的服務器配置嗎?你有root權限嗎?如果沒有,你應該問你的提供商來幫助你... – koleror

+0

我有ssh,但我也可以讓他們爲我做事情...我不知道該怎麼告訴他們做:)))。 ..步驟1)創建一個子域稱爲開發步驟2)....呃,我不知道:)) – user2030809

0

這是我的工作流程。

我有3個主要分支:

  1. 法師,這個分支反映的主要網站:website.com
  2. 發展,這個部門反映dev的網站:dev.website.com
  3. Preprod,要添加另一個級別的測試,您可能不需要它。

每個功能都是基於開發的分支上編碼的。當證明是穩定的時候,開發就會在主人身上合併。

我的web服務器將開發分支與dev子域以及主分支與主域同步。

+0

我最大的困惑是如何設置服務器指向一個分支?我的意思是......當我創建一個子域時,我必須在服務器上指定一個位置......我不知道git的分支是否可以以某種方式鏈接到該位置: – user2030809

+0

正如我所說的,只需在您的服務器上的兩個不同位置部署您的分支機構,並將您的子域名指向正確的位置 – koleror

+0

當我們談論部署時,我們的意思是您自己的腳本,它調用'git clone'並檢出所選分支。在部署應用程序(遷移數據庫,重新啓動應用程序服務器等)時,您可能想要做更多的事情。 –