2016-02-05 138 views
1

在我正在開發的程序中,我正在使用版本控制。但是,我有一個開發模式和一個實時模式,由程序中的變量進行更改。使用GIT來管理開發環境

是否有可能從基本開發分支中分支持有該變量更改,但是當我修改程序以將新提交推送給主服務器而不推送那些將其切換到開發模式的原始更改時?

Master --------Master with Changes, but not Dev Base Variable change 
|-Dev Base ^
    |-Changes----| 

回答

2

不要在git控制下保持與環境相關的配置。

在一個簡單的情況下,它可以是一個變量,但通常它是一組參數,如數據庫名稱/用戶/密碼,外部API憑證等。 You don'tstoreyourpasswords and credentials as the plain text in the repository,right?處理這種

兩種常用方法有:

1)添加在配置文件中的.gitignore。在存儲庫中,您可以擁有配置文件示例,因此可以輕鬆設置新環境(只需複製示例並根據本地環境進行修改)。

2)保持變量參數爲環境變量。

+0

這些參數位於服務器端腳本中,我在該腳本上的一個變量之間進行更改,以指定要獲取哪組變量。在極少數情況下,我無法將其添加到.gitignore中,我需要編輯該文件。我曾想過將參數添加爲環境變量,但是我無法控制服務器,無法更改環境變量。 (這是一個PHP程序) –

+1

@JamesRay你是用Apache還是ngnix運行你的腳本?可以從configs設置環境變量(檢查http://stackoverflow.com/questions/2378871/set-application-env-via-virtual-host-config-and-read-this-in-php和http: //stackoverflow.com/questions/8098927/nginx-variables-similar-to-setenv-in-apache)。另外你如何部署新版本?您可以讓您的部署腳本生成生產配置。 –

+0

我正在運行Apache,我可能能夠使用該鏈接,並基於服務器URL的變量。我試圖避免這個,因爲擔心網址被改變了。我可能必須這樣做,因爲它看起來我想用git是不可能的。謝謝。 –

3

你可以有一個單獨的「開發」分支,並定期重訂或合併在你主的頂部,但可能是大量的工作。

也許維護一個單獨的文件不在維護範圍內,該文件存在於您的.gitignore中,該文件指定了開發模式等內容。

+0

如果我有一個.gitignore中的文件比我無法對該文件進行任何更改(在極少數情況下可能有此更改)。 –