git - 如何使用 Git 合并一行内的更改?
问题描述
假设以下情况:
- 创建一个包含内容的文件
Hello World!
,添加它,提交。 - 将其更改为
Hi World!
一个分支,然后更改Hello World
为另一个分支。 - 现在合并它们会导致冲突,因为两个更改都在同一行。
考虑我们在不同行上分隔更改的替代方案: 1. 创建一个包含内容的文件Hello\nWorld\n!
。(我用 . 表示换行符\n
。) 2. 像以前一样应用类似的更改。3. 现在突然合并就可以了。
但是换行符和其他字符一样。为什么合并对待它如此特殊?
更重要的是,是否有 git 兼容的合并工具可以合并我的第一个示例而不会发生冲突,即是否可以在一行内合并更改?
解决方案
所有 VCS 中的所有(标准)合并工具都是基于行的(只是因为diff
,patch
在引擎盖下是基于行的,文本行是原子的,甚至没有评估更大或更小的对象)......我会尽量不要提及差异的“上下文”和“统一”格式以及相关的“帅哥”头痛
您的问题的常见答案 - “不,现在野生网络中没有这样的合并(至少是众所周知的并且来自信誉良好的来源)。但是 - 您可以编写它并在 Git 中用作特殊的自定义合并工具”
PS - 来自链接答案的涂抹|清洁过滤器方法似乎是一个更有希望的(至少对我而言)解决方案
推荐阅读
- flutter - 如何在 http post 正文中发送大型 json 数据
- python - 简化数据帧比较以过滤数据
- https - HTTPS 使用谷歌域名和第三方托管
- c++ - 从指针向量的引用访问元素
- mysql - MYSQL 自动删除超过 7 天的行
- c# - 无法设置“会话”变量 MVC 5
- sql - SQL Server 的命令行执行未找到 CMD 变量
- python-3.x - 从一个文件导入到另一个文件时遇到问题
- ruby-on-rails - 调整大小不适用于 Shrine 和 ImageProcessor / MiniMagick - Rails 5.2
- flutter - 颤振蜂巢箱不可听