在GitHub上查看无空格更改的提交记录

26

有没有一种方法可以在github.com上显示提交记录,而不显示空格更改?

是否有一种方法可以从控制台中查看提交(树)并忽略所有空格更改,类似于Trac中的“忽略空格更改”(可以在变更集视图中找到)?

我广泛使用Trac;我正在寻找类似于“忽略空格更改”的东西。


在GitHub UI中添加一个按钮,以忽略提交中的空格更改。 - Martin Tóth
4个回答

67

在显示差异的任何github.com页面上,将?w=1添加到URL中,它将忽略空格。有关详细信息,请参见此博客文章


似乎由于某些原因,它并不适用于所有人。遗憾的是,这将是一个很棒的功能。 - Artem Goutsoul
1
我发现这适用于GitHub的“diff”页面,但不适用于GitHub的“blame”页面。 - Nathan Bell
请注意,如果URL已经包含问号,则应添加&w=1而不是?w=1 - wovano

20

在任何git的diff命令中,您有三个选项可供使用:

  • --ignore-space-at-eol 忽略行末空格的更改。
  • -b, --ignore-space-change 忽略空格数量的更改。这会忽略行末的空格,并将所有其他一个或多个空格字符序列视为等同。
  • -w, --ignore-all-space 在比较行时忽略空格。即使一行存在空格而另一行没有,也会忽略这些差异。

我不认为GitHub已经使用这些选项实现了任何功能。


20
从 https://github.com/blog/967-github-secrets 开始——你可以在URL后面加上 ?w=1 来忽略空格并查看差异。 - Alexander
1
不幸的是,?w=1似乎不能忽略换行符,这该死的。 - Alexander Mills

1

可悲的是,X 事物已经消失,以前的代码片段也因此变得无用。以下是暂时应该可行的替代方案:

var i, e, tr, tdL, tdR, textL, textR, text = function (el) { return el.parentNode.children[2].children[1].children[0].textContent.replace(/\s/g, '').substr(1); }
for (i = 0, e = document.getElementsByClassName('gd'); i < e.length; ++i) {
    tr = e[i].parentNode.parentNode.parentNode;
    if ('&nbsp;' !== tr.children[1].innerHTML) { continue; }
    tdL = tr.children[0];
    tdR = document.getElementById(tdL.id.replace(/^L(\d+)L/, 'L$1R')),
    textL = text(tdL);
    textR = text(tdR);
    if (textL === textR) { tdL.parentNode.style.display = tdR.parentNode.style.display = 'none'; }
}

0
在查看提交页面的源HTML后,我发现GitHub用"x" CSS类标记纯空格更改... 这使得下面的一行代码成为可能:
jQuery.expr[':'].hasX = function(obj) { var $this = $(obj); return ($this.find('.x').length && $this.next().find('.x').length); }; jQuery('.data tbody tr:hasX').toggle().next().toggle();

它的作用是遍历提交表的所有行,如果给定的行和其后一行都有“.x”元素,则隐藏这些行。

以下是完整的JS代码:

// create new selector
jQuery.expr[':'].hasX = function(obj) {
    // cache
    var $this = $(obj);
    // whether this and next line do have '.x' element as child
    return $this.find('.x').length && $this.next().find('.x').length;
}

// select all rows and hide (ones containing "-")
jQuery('.data tbody tr:hasX').toggle()
// hide the ones after selected (ones containing "+")
    .next().toggle();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接