2010-02-26 65 views
2

我正在研究一個大型的php/mysql應用程序,而且我已經到了必須使用某種版本控制的地步。我已經閱讀了關於GIT的一些文章,但我看不出找出最好的方法去做這件事。大型php/mysql網絡應用程序的版本控制

我有一臺運行CENTOS和PLESK的專用服務器。我主要在我的本地機器上開發,你使用XAMPP。

如果我想使用版本控制,我應該在使用PLESK的服務器上安裝它,或者我應該在我的本地機器上安裝它。這也會記錄我所做的數據庫更改。

另一件我問題是使用github。還是應該將更改上傳到集線器,還是需要在存儲源文件的服務器上創建我自己的位置?

謝謝你的時間!

回答

3

正常的程序是使用版本控制來開發你的軟件。當你有一個需要去測試或活動服務器的版本時,你可以將代碼從存儲庫部署到測試/活動服務器。 如果您使用的是GIT,那麼它只需要在您的機器上,因爲這是GIT的設計方式,因爲它是分佈式版本控制系統。如果你使用的是Subversion,那麼它可能駐留在遠離你的機器的服務器上。但是在這種情況下,您仍然會以相同的方式進行部署。

這是不正常的添加對數據庫的修改版本控制因各種原因(有其他問題的討論在這裏SO)

你只需要使用GitHub的,如果你與其他人或工作正在打開你的代碼到廣泛的世界去下載和使用。然而,上傳到GitHub的另一個原因是,如果您的本地計算機的所有代碼和存儲庫崩潰,並且您丟失了可從此處恢復的本地副本。不過,我認爲你正在做備份?

編輯 - 添加 有一個free book處理git,但在下面處理您添加一個名爲gitignore的文件,並在其中添加您不希望在存儲庫中的文件模式。所以你有目標服務器上的本地配置文件和遠程配置文件,但他們沒有被覆蓋,因爲你的本地文件不在版本庫中

+0

是的,我正在線上和離線進行各種備份。所以,如果我明白這一點,那麼程序如下。電腦 - > git,當完成git - >服務器。 git是否保存服務器的設置,或者我應該手動上載並覆蓋服務器文件。 – 2010-02-26 07:49:44

+0

後者。出於這個原因,我從不將自己的設置文件添加到SCM,而是一個模板。 – Ikke 2010-02-26 07:51:51

2

您不需要對部署計算機進行版本控制,只需使用您的開發計算機連接到SVN存儲庫就足夠了。當目前的構建/發佈已準備就緒時,您只需上傳/部署即可。

生產服務器上不需要SVN客戶端。

您可能還想閱讀關於Using SVN for Web Development的這篇文章。

1

使用git,你不需要服務器。任何使用git的文件夾(即運行git --init)都將成爲git存儲庫,並將所有版本信息存儲在.git(該目錄的子文件夾)中。

Github用於在開源項目之間進行協作 - 在中央位置託管存儲庫的裸副本 - 裸副本就是沒有工作樹的.git文件夾。

至於是否可以處理mysql數據庫內容; git可以跟蹤二進制文件,但是mysql通常將其數據與應用程序的源文件夾分開存儲,所以這可能很難做到。

正如Filip所說,您不需要在部署計算機上使用VCS;用git說,你可以推動你的提交。

2

我同意其他答案,但如果您喜歡使用git並在遠程計算機上使用快速測試部署方法(對測試有用),您可以嘗試Gitosis。 這是一個簡單的git服務器解決方案,簡單地說你可以在你的遠程機器上擁有自己的「git服務器」,這對於保存你的工作的遠程備份副本很有用。

比你可以在本地提交更改或將它們推回到遠程計算機。

在你就得還克隆庫中,你要使用你的項目目錄中的遠程機器...

這是很容易,它看起來和它的工作真的很好:)

相關問題