簡體   English   中英

我可以在不同的git分支中擁有不同的私有配置文件嗎?

[英]Can I have different private config files in different git branches?

我們正在開發產品,我們將Git用作我們的SCM。 產品的每個次要版本都位於其單獨的分支中。 作為開發人員,我有自己的數據庫集,每個次要版本一個。 我還有一個私有配置文件,Git會忽略它,它指定要使用的數據庫。 但是由於它被Git忽略,所以無論我當前在哪個分支上,它都保持不變。 這樣做不好,因為如果配置文件說要使用數據庫db_1_2(用於分支1.2),則切換到分支1.3會使配置文件仍然指向數據庫db_1_2。

我目前有一段代碼可以讀取並解析分支標識符,以設置正確的數據庫,但是它容易出錯,因為Git標識符具有多種形式,其中大多數很難/不可能解析正確的分支。名字來自。

我可以詢問產品本身,但並非所有舊版本都具有靜態的getVersion()方法。

所以我的問題是這樣的:是否有任何良好且干凈的方法來使私有配置文件以某種方式屬於分支,但當推送到遠程/中央存儲庫時卻不能成為最終產品?

當數據庫與分支如此緊密相關時,為什么數據庫版本在忽略的配置文件中? 您正在尋求一種從分支機構確定數據庫的方法,但是分支機構的整個工作是提供特定於分支機構並與分支機構中其他所有內容一致的代碼狀態。 將數據庫標識符從配置文件中移到不被忽略的地方。

如何創建一系列以git分支命名的配置文件? 然后,當機會出現分支時,您可以執行以下操作:

ln -s configs/$(git symbolic-ref HEAD|cut -f3 -d/) myconfig.conf

或者,代替運行:

git co -b branchname

制作switchbranch腳本的操作類似於:

git co -b $1
ln -s configs/$1 myconfig.conf

一切都變得自動化。 如果切換到沒有現有配置的分支,您甚至可以幻想並創建模板配置文件。

你可以有多變(自動)配置,反映分支的變化,是否會使用從理念進行版本為模板, 這是我的帖子 ,你會添加關鍵字為模板的分支相關的部分和過濾器處理這些關鍵字。 任何變更集的分支可能是

git branch | grep "*"

git status | grep 'On branch'

git symbolic-ref -q HEAD (?)

git branch | sed --quiet 's/* \\(.*\\)/\\1/p'

看不到如何避免推推的副作用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM