github的提交差异是如何工作的?

问题描述 投票:0回答:1

我一直在想,GitHub是如何显示两个提交之间的差异的,它把删除的行显示为红色,增加的行显示为绿色。我有一个项目,我想做类似的事情,怎么做呢?谁能解释一下背后的逻辑?

python css user-interface github diff
1个回答
0
投票

我相信Github使用的是 git diff,默认情况下,它使用的是 迈尔斯算法. 还有其他类似的算法可以做到这一点(git diff实现了其中的一些),它们都有点复杂。我不建议你在自己的项目中尝试实现它们中的任何一种(除非你想把它作为一个学习的挑战)。

如果你需要在你自己的项目中做一个diff,我会直接绕开 git diffunix diff命令,或者使用其他的包。例如,Python有一个很好的模块 difflib 似乎这样做。


0
投票

具体是什么意思呢?使用CSS进行着色很简单,只要设置一个 background-color所以我猜想,这不是你想要的。

如果你要找的是 "寻找两个文本文件之间的差异",正确的搜索词应该是 "diff":一个古老的unix工具,用来显示两个文件之间的差异。如果你有一个Linux的shell,可以尝试使用 diff -Naur file1.txt file2.txt -- 这将会给你显示一个类似于github上的diff的输出。

如果你需要在python中使用这种方法,可以看看 https:/pypi.orgprojectdiff-match-patch

© www.soinside.com 2019 - 2024. All rights reserved.