如何合并Git中以前提交的更改(或实现相同的结果)?

如何合并Git中以前提交的更改(或实现相同的结果)?,git,Git,我在家办公,团队的其他成员都在现场。目前,我的环境是使用数据库的本地副本设置的,这样,只要我将所有连接字符串更改为: data source=server\instance 致: 数据源=。 问题是在每次本地合并之后,我必须将相同的更改重新应用到一堆文件中 我的目标是找出是否有一种很好的方法可以利用Git的功能合并修订版中的更改,以便轻松地重新应用这些更改 作为第一步,我将对配置文件的更改提交到本地副本。我的第一个想法是我可以选择那个承诺来恢复我的本地更改,但现在我正在考虑它,我不知道如何继续

我在家办公,团队的其他成员都在现场。目前,我的环境是使用数据库的本地副本设置的,这样,只要我将所有连接字符串更改为:

data source=server\instance

致:

数据源=。

问题是在每次本地合并之后,我必须将相同的更改重新应用到一堆文件中

我的目标是找出是否有一种很好的方法可以利用Git的功能合并修订版中的更改,以便轻松地重新应用这些更改

作为第一步,我将对配置文件的更改提交到本地副本。我的第一个想法是我可以选择那个承诺来恢复我的本地更改,但现在我正在考虑它,我不知道如何继续

有人用Git解决过这样的配置问题吗?如果有,你是如何解决的


我认为我所追求的功能本质上是“将一组更改临时合并到一组文件中,然后还原它们”。

虽然我个人更喜欢将配置信息与该配置要应用的代码完全分开,现有的解决方案可用于在移动目标上维护补丁系列。是基于git的工作类似于棉被,一个流行的补丁管理系统

我同意的规范响应是:不提交配置文件,提交配置文件的模板

就我个人而言,我更喜欢这个咒语的一个稍加修改的版本:

  • 不提交配置文件,提交与配置文件本身格式相同的默认值
  • 以这样的方式构造应用程序:默认值可以被仅指定与默认值不一致的设置的文件覆盖。这允许随着时间的推移指定其他默认值,而不会因为存在本地配置而忽略它们。这提供了与默认值实际合并的一些(但不是全部)好处
  • 请始终记住,“不要在代码旁边提交配置”并不意味着“不要对配置文件进行版本设置”——您可以单独对其进行版本设置。始终对应用程序进行结构化,以便“机密”信息可以与配置分开存储,从而只允许最小的子集变为非版本

通常,我不会在repo中保留特定于环境的配置,而是特定于每台机器。每台机器都有自己的一组配置文件,并且repo包含“默认”配置文件,即模板。我自己也倾向于这样想-很高兴听到其他人也这么认为你也可以使用环境变量而不是模板文件,或者将这两种解决方案结合起来。我喜欢的一部分是完全不包括它们,即使是基于环境,也是隐私。这可能不是私人回购中的问题,但这是一个值得考虑的问题。