2014-06-27 62 views
2

我對Git相當陌生,目前我正在將SVN中的項目遷移到Git。它目前的工作方式是服務器上有一個開發目錄,服務器上有一個生產目錄。開發和生產每個都有一個單獨的數據庫,因此在它們各自的web.config中有不同的連接字符串。我將使用gitflow工作流程,以便在更改準備好進行生產時將合併到主設備中,以便我需要讓dev分支上的web.config具有一個連接字符串並具有單獨的連接生產分支上的字符串。有沒有這樣做的邏輯方法?Git中web.config的兩個不同連接字符串

回答

5

在asp.net中,您可能需要查看web.config transformation。您項目中可能已經有一個web.release.config和一個web.debug.config。它們可以用來切換連接字符串,具體取決於您用於構建應用程序的構建配置(構建,調試等)。

這是我碰到的是包括在一個單獨的文件中像您的連接字符串另一個想法:

<configuration> 
    <connectionStrings configSource="connectionStrings.config" /> 
</configuration> 

這將導致.NET從connectionStrings.config文件加載連接字符串。然後在版本控制中忽略該文件,並且dev版本分佈在本地開發環境中,分段版本放置在分段服務器上,然後生產版本停留在生產中。

肯定有更多的解決方案,而不僅僅是這些。但是,我已經在這兩個選項中得到了相當不錯的運氣,在一個更小的gitflow類型的環境中。

+0

我將嘗試使用您建議的單獨文件。這似乎應該做的伎倆。謝謝! –

1

您應該使用Web.config Transformations進行基於配置的配置。他們在分支機構之間旅行是可以的,因爲它們在所有分支上都應該是一樣的。

但是對於本地開發,Web.config,Git Attributes是你應該使用的。

只需創建一個.gitattributes文件在您的項目(其中.git/文件夾)的根,把以下行的文件中:

Web.config merge=ours 

每次分支合併有更新的Web.config時間文件,它會保持你目前的變化。