git - git diff 如何判断一行是否已被修改或添加?

标签 git algorithm diff

给定两个文件,git diff 或任何 diff 工具如何判断哪些行已被添加、修改或删除?

是否存在可能无法识别已编辑行的正确状态的边缘情况?

编辑:这个问题更关心差异如何发生的实际方法

最佳答案

Git 存储快照:给定您选择的任意两个快照,Git 会提取您想要比较的文件1到临时区域2,然后运行“diff两个文件上的“引擎”。该引擎的结果是,或者应该是,一系列指令,在应用这些指令时,会将左侧文件转换为右侧文件。

Git 有几个内置的 diff 引擎,Git 称之为:

它还可以运行您选择的外部差异引擎。


1或者至少是它想要比较的那些。如果您正在比较实际上不在提交中的文件,它们可能已经被提取。

2Git 主要在内存中执行此操作,但在运行外部差异时,确实使用临时文件。

关于git - git diff 如何判断一行是否已被修改或添加?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59613900/

相关文章:

diff - Linux 控制台中有任何视觉差异吗?

git - 有没有一种方法可以通过 git 中的所有提交来更改文件的内容?

git - 如何在不更改 master 中的配置文件的情况下 merge 到 Git 中?

git - 从 Git 存储库克隆单个文件

algorithm - 在线性时间内验证从每个节点到汇聚节点的最小成本

javascript - 你有比下面的代码更聪明的算法吗

git - 使用 gitflow 为 git 用户提供了什么?

arrays - 在排序数组上应用函数

python - 递归二叉搜索树插入

unix - 我如何区分网络上的两个文件