git - 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,可以生成程序解决方案,但我想知道一般情况下是否存在解决方案。
解决方案
不,没有办法轻松做到这一点。您可以使用自定义合并驱动程序并将其连接.gitattributes
到 .您使用的任何托管平台。
这在 Git 列表中被问到,答案基本上是“不要那样做”。您的要求类似于Git 常见问题解答问题,即为什么您不能忽略对跟踪文件的更改,但更一般地说,答案是您应该执行以下操作之一:
- 根据环境,使用不同的文件并使用脚本将其中一个复制到忽略的位置。
- 使用脚本从每个系统上的模板生成配置文件。
- 使用环境中的配置,无论如何这是最佳实践。
推荐阅读
- ckeditor - 如何插入图像和超链接 [ckeditor 4]
- javascript - 加载没有图像的网站以提高效率
- node.js - 如何将排序功能与 $or 和 $and 一起使用?
- javascript - 当您在 JavaScript Promises 中省略 .catch 时,实际发生了什么?
- javascript - 无法解析为在 Thymeleaf 中定义 DataTable 的表达式
- java - kurento-room-demo 缺少库 org.kurento.module:markerdetector
- python - 列表/Zip 中的“for”
- python - 通过与训练数据的一致映射来分解实时数据?
- kotlin - Kotlin DSL Android Gradle 任务
- javascript - JS:在数组中查找不成对的元素