首页 > 解决方案 > Git忽略文件的某些部分

问题描述

有没有办法在合并分支时避免文件的某些部分被忽略,

即 config.ini(刚刚发明),假设我不能制作 config.dev.ini、config.test.ini 并且在所有分支中我只有 config.ini 文件。

在 config.ini 我们有'environment= dev/test/prod1..'其中之一。

每次从 dev 合并到 test/master 时,config.ini 上都会发生冲突,并显示环境更改为 dev 或 test 或.. 基于源分支。

有没有办法从冲突检测中忽略该部分,但仍考虑其他行。我的问题是针对 SCM 基金会吗?我们可以完全忽略文件,为什么不能部分忽略?

我不想把它放在 .gitignore 中。我只是以这个 config.ini 为例。但是,我试图避免其他开发人员覆盖某些文件中的某些部分。不完全忽略文件。当然,对于 config.ini,可以生成程序解决方案,但我想知道一般情况下是否存在解决方案。

标签: gitgit-merge

解决方案


不,没有办法轻松做到这一点。您可以使用自定义合并驱动程序并将其连接.gitattributes到 .您使用的任何托管平台。

这在 Git 列表中被问到,答案基本上是“不要那样做”。您的要求类似于Git 常见问题解答问题,即为什么您不能忽略对跟踪文件的更改,但更一般地说,答案是您应该执行以下操作之一:

  • 根据环境,使用不同的文件并使用脚本将其中一个复制到忽略的位置。
  • 使用脚本从每个系统上的模板生成配置文件。
  • 使用环境中的配置,无论如何这是最佳实践。

推荐阅读