如何干净地从GitHub.com的差异中复制代码到剪贴板?

11

考虑来自GitHub.com浏览器的以下拆分视图代码差异:

diff

在查看此差异时,我想复制右侧的代码(例如,为了将该片段粘贴到另一个窗口中的不同项目中)。

然而,如果我尝试使用鼠标以通常的方式选择右侧的代码,则会选择两侧的代码:

enter image description here

如果我使用Ctrl+C / Cmd+C,我的剪贴板中就会出现一堆混乱的内容,其中包括来自两个侧面的代码副本以及所有的+-指示器,这让我在粘贴后需要进行很多容易出错的手工清理。(特别是当从比我在这个问题中选择的简单演示更长更复杂的差异中进行复制时!)
我的问题是:如何干净、简单地从GitHub.com上的网络浏览器中的一个分割视图差异中复制代码到我的剪贴板?

1
我不确定GitHub在创建它时是怎么想的。这样做会让从差异中复制变得非常困难... : / - Daniel Kmak
更新:现在(2020年11月),refined-github扩展程序允许进行干净的复制。请参见我的下面更新的答案 - VonC
2021年3月更新:这应该终于得到支持了!不需要任何扩展。请参见下面我更新的答案 - VonC
@VonC 尽管最新的更新已经处理了大多数常见的使用情况,但如果你想复制通过点击显示周围代码的箭头所揭示的任何上下文,它仍然存在同样的问题,不幸的是。 - undefined
1个回答

2
2021年3月更新:这次应该支持了:

复制拆分差异的一侧

在使用拆分视图比较文件更改时,现在可以选择并复制差异的一侧。
以前会复制两侧。选择评论时仍会复制评论内容。

split diff -- https://i1.wp.com/user-images.githubusercontent.com/7900087/110049768-5b9a1600-7d07-11eb-80eb-52ef1ada617c.gif?ssl=1


2018年5月:
正如Hugo Giraudel在2018年4月底的推特中所提到的,可能有些匆忙:

GitHub 终于将差异中的+-符号移动到CSS伪元素中,使得可以直接从差异中复制代码而无需清理它。这是早就应该做的,太棒了!✨

https://pbs.twimg.com/media/DcBOo-tXcAArfD_.jpg:large

实际上... 这只有在借助第三方扩展的帮助下才是真的!就像sindresorhus/refined-github一样。
如果没有它,你仍然会复制 '+' 和 '-'。GitLab已经具备了这个功能。但对于BitBucket来说,这仍然是有待解决的(issue 16204)。 timotheecour 在评论中报告说,它不能帮助比较并列的代码差异:

来自两侧的代码都被选中了

这段话是关于使用refined-github,这是一个简化GitHub界面的浏览器扩展程序:问题2765。更新于2020年11月:该问题已经通过PR 3698得到解决。

https://user-images.githubusercontent.com/46634000/98137788-abd0ab00-1ec2-11eb-9e04-6f20786d5dd8.gif


1
这并不能帮助以下问题的解决: “来自两个方面的代码最终都被选中”;我也在这里提出了问题:https://github.com/sindresorhus/refined-github/issues/2765 - timotheecour
@timotheecour 谢谢。我已经将您的评论包含在答案中以增加可见性。 - VonC
@失望 这似乎是预料之中的:https://github.com/sindresorhus/refined-github/commit/ea6c3bf37f698a4b6a2eadd689ef2a09ec93c477 ,该PR引用了这个,但它还没有成为该插件发布的一部分。(https://github.com/sindresorhus/refined-github/releases)。它应该很快发布。 - VonC
@Disappointed https://github.com/sindresorhus/refined-github/releases/tag/20.11.12 已经发布!该版本应该包括单列差异选择功能。 - VonC

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