Git 如何在不同的分支上保持不同的值(提交)?

Git 如何在不同的分支上保持不同的值(提交)?,git,Git,我相信我描述的情况是相当普遍和基本的,但我找不到解决办法 我正在开发一个web应用程序,我有git存储库。有一个应用程序的生产版本,我将其代码保存在主分支上,并且有用于开放开发的分支 我想要实现的是: 我希望在主分支和开发分支上有一些不同的值,比如连接字符串。 我希望在开发准备发布时能够合并这些分支,而不必担心上面提到的值。因此,开发分支的连接字符串不会覆盖生产版本的连接字符串 理想的解决方案还包括在创建新分支时替换从PROD数据库到DEV字符串的连接。 我想出了一种方法,在开发分支上提交这些更

我相信我描述的情况是相当普遍和基本的,但我找不到解决办法

我正在开发一个web应用程序,我有git存储库。有一个应用程序的生产版本,我将其代码保存在主分支上,并且有用于开放开发的分支

我想要实现的是:

我希望在主分支和开发分支上有一些不同的值,比如连接字符串。 我希望在开发准备发布时能够合并这些分支,而不必担心上面提到的值。因此,开发分支的连接字符串不会覆盖生产版本的连接字符串 理想的解决方案还包括在创建新分支时替换从PROD数据库到DEV字符串的连接。 我想出了一种方法,在开发分支上提交这些更改,并将其标记为不包含在合并中,但我找不到一种方法


如果您能给我任何建议,我将不胜感激。

在更改(例如开发分支)之前,请先签出该分支,然后再提交。

在更改(例如开发分支)之前,在进行更改之前签出该分支,然后提交。

我建议您创建一些git不跟踪的配置文件。您的代码可以读取此文件以初始化连接设置。由于该文件不受版本控制,您可以根据不同的用例(包括生产与开发)轻松修改它。

我建议您创建一些git不跟踪的配置文件。您的代码可以读取此文件以初始化连接设置。由于该文件不受版本控制,因此您可以根据不同的用例(包括生产与开发)轻松地对其进行修改。

您可以忽略不希望GIT使用.gitignore跟踪的文件,请在此处阅读更多信息

但这并不能解决您的问题,因为在添加了特定于开发阶段的文件之后,您也无法将它们跟踪到您的开发分支

正如您所提到的,这是一个非常常见的场景,通常我们为每个阶段创建一个不同的文件,即dev、qa、stage、prod,其中包含特定于某个阶段的值

例如:-

dev.properties :- 
dev server details

qa.properties :-
qa server details

prod.properties :-
prod server details

然后,您的代码根据您选择的阶段读取这些属性文件,即ie开发、qa、prod

您可以忽略文件,您不希望GIT使用.gitignore跟踪这些文件,请在此处阅读更多信息

但这并不能解决您的问题,因为在添加了特定于开发阶段的文件之后,您也无法将它们跟踪到您的开发分支

正如您所提到的,这是一个非常常见的场景,通常我们为每个阶段创建一个不同的文件,即dev、qa、stage、prod,其中包含特定于某个阶段的值

例如:-

dev.properties :- 
dev server details

qa.properties :-
qa server details

prod.properties :-
prod server details

然后,您的代码根据您选择的阶段(ie开发、qa、prod)读取这些属性文件最简单的方法是:

版本仅为模板文件 寻找回购协议以外的价值文件,尤其是生产价值 这样,就不存在合并问题。 为此,您需要在子模块repo a中的a中注册

图像来自

与模板文件关联的涂抹脚本将在git上自动生成,通过在源代码外部查看实际值来检查属性文件。 生成的实际属性文件仍被.gitignore忽略


参见。

的完整示例最简单的方法是:

版本仅为模板文件 寻找回购协议以外的价值文件,尤其是生产价值 这样,就不存在合并问题。 为此,您需要在子模块repo a中的a中注册

图像来自

与模板文件关联的涂抹脚本将在git上自动生成,通过在源代码外部查看实际值来检查属性文件。 生成的实际属性文件仍被.gitignore忽略


请参阅。

does help?does help?上的完整示例,更准确地说:Git跟踪源代码时不会跟踪配置文件*。在自己的scmt中单独跟踪配置是完全可以的,这样更准确:Git跟踪源代码时不会跟踪配置文件。在自己的SCM中单独跟踪配置是完全可以的