github commit diff 是如何工作的?

How does github commit diff works?

我一直想知道,GitHub 是如何显示两次提交之间的差异的,它将删除的行标记为红色,添加的行标记为绿色。我有一个项目,我想做类似的事情,该怎么做?有人可以解释一下背后的逻辑吗?

我相信 Github 使用 git diff,默认情况下使用 Myers algorithm。还有其他类似的算法可以做到这一点(git diff 实现了其中的一些),它们都有点复杂。我不建议您尝试为您自己的项目实现其中的任何一个(除非您想将其作为 challenge/for 学习)。

如果您需要在自己的项目中进行比较,我会绕过 git diff 或似乎可以执行此操作的 unix diff command, or use some other package. For instance, Python has a nice module difflib

你到底是什么意思?使用 CSS 着色就像设置 background-color 一样简单,所以这不是你想要的,我想。

如果您到达 "finding the differences between two text files",那么正确的搜索词是 "diff":一个显示两个文件之间差异的旧 unix 工具。如果您有 Linux shell 供您使用,请尝试 diff -Naur file1.txt file2.txt - 这将向您显示与 github.[=13= 上的 diff 类似的输出]

如果您需要 python,请查看 https://pypi.org/project/diff-match-patch/