如何链接到github上的特定行号


371

我知道我可以链接到github存储库上的文件上的特定行号(我确定我之前已经看过)。

有人可以告诉我该怎么做吗?

Answers:


587

不要只链接到行号!确保也使用规范的URL。否则,当该文件更新时,您将拥有一个指向错误行的URL!

如何建立到正确行的永久链接:

单击所需的行号(如第18行),浏览器中的URL就会显示#L18在末尾。您从字面上单击18左侧的,而不是代码行。看起来像这样:

选择第18行

现在,您的浏览器的URL如下所示:

https://github.com/git/git/blob/master/README#L18

如果要选择多行,只需按住Shift键并单击第二行号,如第20行。看起来像这样:

在此处输入图片说明

现在,您的浏览器的URL如下所示:

https://github.com/git/git/blob/master/README#L18-L20

这是重要的部分:

现在,通过按键获取该特定提交的规范网址y。您的浏览器中的URL将变为如下所示:

https://github.com/git/git/blob/5bdb7a78adf2a2656a1915e6fa656aecb45c1fc3/README#L18-L20

该链接包含该特定提交的实际SHA哈希,而不是上文件的当前版本master。这意味着该链接将永远有效,并且不会指向该文件的将来版本可能包含的第18-20行。

现在,沉浸在新的永久链接的光芒中。;-)

2017年9月29日更新:正如@watashiSHUN指出的那样,通过...在选择一个或多个行之后在左侧提供一个菜单,github现在变得更容易获得永久链接。请也支持@watashiSHUN的答案

GitHub永久链接菜单

2016年3月25日更新:恰当的例子—在上面的示例中,我引用了URL中的“ README”文件。编写此答案时,那些非规范的URL实际上起作用。但是现在这些网址自README移至后不再起作用README.md。但是,具有SHA哈希的规范URL仍然可以正常工作。


3
y键对我没有任何作用。这个改变了吗?从Google Chrome开发者频道尝试。
k0pernikus 2015年

4
它仍然有效...文档仍然说要使用y密钥... help.github.com/articles/getting-permanent-links-to-files
broc.seib 2015年

2
按住Shift并单击第二行的代码是一个不错的选择!我手动编辑URL以添加第二行:)。但是,如果要跟进问题,我是否要突出显示第2、4和17-22行?有可能吗,还是一次只能突出显示一个方块?
情有独钟

3
@ tr3buchet我刚刚对github支持进行了ping操作-目前尚不可能。他们说他们会考虑该功能,但没有任何承诺。我提供的格式应类似于L18-L20,L29,并且一个人可以CTRL单击以添加不连续的行。我认为您的想法是一个很好的建议,将非常有用。
broc.seib

2
如果READMEREADME.md什么呢?
zwcloud '18 -4-11

56

@ broc.seib有一个复杂的答案我只是想指出y,github现在没有按动获得永久链接,而是有一个非常简单的UI来帮助您实现它。

  1. 通过单击行号来选择行,或者通过按住来选择多行shift(与在文件资源管理器中选择多个文件夹的方式相同) 在此处输入图片说明

  2. 在您选择的第一行的右上角,展开...并单击copy permalink 在此处输入图片说明

  3. 就是这样,具有选定行和提交哈希的链接被复制到剪贴板https://github.com/python/cpython/blob/c82b7f332aff606af6c9c163da75f1e86514125e/Doc/Makefile#L1-L4

18

单击行号,然后从地址栏中复制并粘贴链接。要选择范围,请单击数字,然后按住Shift键单击更高的数字。

另外,链接是相对简单的格式,只需#L<number>使用指向文件的链接,将其附加到该特定行号的末尾即可。这是git存储库第三行的链接README

https://github.com/git/git/blob/master/README#L3

屏幕截图带有突出显示的行和修改后的地址行


3
不要忘记,如果文件发生更改,该URL仍将指向第3行,其中可能包含新代码,可能不是您想要的!我提供了另一个解决方案,它产生了永久链接。提示:只需按y。;-)
broc.seib 2015年

4
该链接被打破
pmrotule

12

到代码段的永久链接粘贴到拉取请求注释字段中

您可以使用永久链接在问题,PR等中包含代码段。

参考文献:

https://help.github.com/en/articles/creating-a-permanent-link-to-a-code-snippet


2
很好的gif!
Giovanni Benussi

对不起,请问您使用了什么工具?
Giovanni Benussi

@GiovanniBenussi来自GitHub。请参阅链接。
Gayan Weerakutti

我的意思是gif :-P哈哈哈
Giovanni Benussi

1
@GiovanniBenussi我不知道使用了什么可逆性,但是偶尔我会使用一个名为“ screentogif”的漂亮工具制作这样的gif图像,您应该尝试一下github.com/NickeManarin/ScreenToGif
SamGamgee,

6

许多编辑器(另请参见下面的“ 命令”部分)支持链接到GitHub或BitBucket(或其他)上文件的行号或范围。这是一个简短的清单:

原子

在GitHub上打开

埃马克斯

git链接

崇高文字

连连看

Vim

gitlink-vim


指令

  • git-link -Git子命令,用于获取指向git对象的仓库浏览器链接
  • ghwd-打开与您的Shell当前分支和工作目录匹配的github URL

0

与如何链接到README.mdGitHub存储库到特定行号的代码有关

您有以下三种情况:

  1. 我们可以链接到(自定义提交

    但是Link总是会链接到旧文件版本,例如,该文件不会在master分支中包含新更新。例:

    https://github.com/username/projectname/blob/b8d94367354011a0470f1b73c8f135f095e28dd4/file.txt#L10
    
  2. 我们可以链接到(自定义分支),如(主分支)。但是该链接将始终链接到将包含新更新的最新文件版本。由于新的更新,该链接可能指向无效的业务行号。例:

    https://github.com/username/projectname/blob/master/file.txt#L10
    
  3. 由于以下业务问题,GitHub不能自动链接到(自定义提交)或(主分支)的任何文件:

    • 业务含义,链接到新文件中
    • 可以更改的目标突出显示代码的长度

0

对于拉取请求中的一行。

https://github.com/foo/bar/pull/90/files#diff-ce6bf647d5a531e54ef0502c7fe799deR27
https://github.com/foo/bar/pull/
90 <- PR number
/files#diff-
ce6bf647d5a531e54ef0502c7fe799de <- MD5 has of file name from repo root
R <- Which side of the diff to reference (merge-base or head). Can be L or R.
27 <- Line number

只要L和R正确,这将带您进入一行。我不确定是否有访问L OR RIe的方法。如果PR添加了您必须使用的线路R。如果删除一行,则必须使用L

来自:生成行指针URL到Github拉取请求

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.