我们正在开发产品,我们使用Git作为SCM。该产品的每个小版本都位于其单独的分支中。作为一名开发人员,我有自己的一套数据库,每个小版本都有一套数据库。我也有一个专用的配置文件,它被Git忽略,它指定要使用哪个数据库。但是,因为它被Git忽略,所以无论我现在在哪个分支上都保持不变。这是不好的,因为如果配置文件说要使用数据库db_1_2(它用于分支1.2),切换到分支1.3将使配置文件仍然指向数据库db_1_2。我可以在不同的git分支中使用不同的私人配置文件吗?
我目前有一段代码可以读取并解析分支标识符,以设置正确的数据库,但它很容易出错,因为Git标识符有很多种类,其中大部分都很难/不可能从中解析正确的分支名称。
我可以问产品本身,但并非所有的旧版本都有一个静态的getVersion()方法。
所以我的问题是这样的:有没有什么好的,干净的方式来让私人配置文件属于某个分支,但是当推送到远程/中央回购站时,不会让它成为最终产品?
问得好副作用。我的做法是解析'git branch'的输出,但这可能就是你现在正在做的。 – bitmask 2012-04-02 20:26:04
是的,那就是我现在正在做的。当“git name-rev -name-only HEAD”产生类似“1.2”的东西时效果很好,但是当检查某个提交或者等分时,这一切都会消失。 – 2012-04-02 20:48:33
你有没有考虑过使用子模块? – Nic 2012-04-02 20:57:06