【问题标题】:How does github commit diff works?github 提交差异如何工作?
【发布时间】:2020-09-05 07:10:21
【问题描述】:

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

【问题讨论】:

    标签: python css user-interface github diff


    【解决方案1】:

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

    如果你需要在你自己的项目中做一个 diff,我只会环绕 git diffunix diff command,或者使用其他一些包。例如,Python 有一个不错的模块 difflib 似乎可以做到这一点。

    【讨论】:

      【解决方案2】:

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

      如果您要“查找两个文本文件之间的差异”,那么正确的搜索词应该是“diff”:一个旧的 unix 工具,用于显示两个文件之间的差异。如果您有 Linux shell 可供使用,请尝试 diff -Naur file1.txt file2.txt - 这将向您显示类似于 github 上的差异的输出。

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

      【讨论】:

        猜你喜欢
        • 2014-03-21
        • 2022-01-04
        • 2013-08-10
        • 1970-01-01
        • 2021-04-19
        • 2021-04-28
        • 1970-01-01
        • 2022-11-05
        • 2017-04-20
        相关资源
        最近更新 更多