19

我正在探索使用 github 进行文本版本控制。github 的一个主要问题是更改是按行进行的。因此,如果您对单词或短语进行了相当细化的更改,则整行似乎都已更改。

在 git 本身中,有一个解决方案,因为您可以激活命令--word-diff上的选项。git diff您最终会得到如下所示的漂亮差异:

github中是否对此有任何支持?可以添加到 url 的某种查询参数,类似于带有?的空白排除选项?w=1

4

1 回答 1

5

Github 随着时间的推移改变了他们的网页,以帮助用户探索更多的方法来区分他们的数据。

在您提出问题时,您可以秘密附加 ?w=1 以忽略空格是正确的。

最近他们在 Pull-request 页面中添加了一个控件,您可以在其中切换空格而不使用命令行,请参见截图

截图 Github pull-request 页面 2018-08-21

但是,(如您所问),Github 可能不太可能添加许多差异设置,这些设置会根据您的问题上下文以不同方式帮助您。

例如git diff --word-diff,由于排长队,可能会在您的特定情况下为您提供帮助。但这会给您带来任何+-{}字符的问题,因为它们没有被转义。

然后你可以使用git diff --color-words,你只得到颜色的差异(并且没有插入特殊字符。

作为第三个选项,您还可以使用git diff --word-diff-regex="."which 将区分任何单个更改的字符(与上面的标准分词相反。

我有时需要查看 XML 文件差异,有时它们会连接到一行。在那种情况下,我有时会很幸运,normalize之前和之后的文件。Git 也有这方面的选择。有关涂抹/清洁的示例,请参见git-attributes

因此,不要期望 github 页面上有太多差异控件:您可能需要的控件变化太大,以至于在任何用例中都没有意义。相反,使用命令行

于 2018-08-21T08:52:16.783 回答