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

时间:2014-05-23 04:58:56

标签: github

我知道我可以链接到github repo上文件的特定行号(我确定我以前见过这个)...

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

7 个答案:

答案 0 :(得分:511)

不要只是链接到行号!一定要使用canonical URL。否则,当该文件更新时,您将有一个指向错误行的URL!

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

单击所需的行号(如第18行),浏览器中的URL将在末尾添加#L18。你真的点击左侧的18,而不是代码行。看起来像这样:

line 18 selected

现在您的浏览器网址如下所示:

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

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

enter image description here

现在您的浏览器网址如下所示:

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

以下是重要部分:

现在按y键获取该特定提交的规范URL。浏览器中的URL将更改为如下所示:

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

该链接包含该特定提交的实际SHA哈希值,而不是master上文件的当前版本。这意味着此链接将永久工作,而不是指向该文件的任何未来版本可能包含的第18-20行。

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

更新9/29/2017:正如@watashiSHUN所指出的,github现在通过在您选择后在左侧提供...菜单,更容易获得永久链接一行或多行。请同时选择@watashiSHUN's answer

GitHub permalink menu

更新3/25/2016:案例 - 在上面的示例中,我提到了" README"文件在网址中。当这个答案写完时,那些非规范的网址实际上是有用的。但是,自README移至README.md以来,这些网址已不再有效。但是,使用SHA哈希的规范URL仍然可以正常工作。

答案 1 :(得分:48)

@broc.seib has a sophisticated answer我只想指出,不是按y来获取永久链接,github现在有一个非常简单的用户界面可以帮助您实现它

  1. 通过单击行号选择行,或通过按下shift选择多行(与在文件浏览器中选择多个文件夹的方式相同) enter image description here

  2. 在您选择的第一行的右上角,展开...,然后点击copy permalink enter image description here

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

答案 2 :(得分:17)

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

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

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

Screenshot with highlighted line and the modified address line

答案 3 :(得分:9)

enter image description here

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

<强>参考文献:

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

答案 4 :(得分:6)

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

原子

Open on GitHub

的Emacs

git-link

Sublime Text

GitLink

的Vim

gitlink-vim

命令

  • git-link - 用于获取git对象的repo-browser链接的Git子命令
  • ghwd - 打开与您的shell的当前分支和工作目录相匹配的github URL

答案 5 :(得分:0)

有关如何将github的README.md链接到特定行的代码文件编号
您有三种情况

1-我们可以链接到(自定义 commit
    但是Link总是会链接到旧文件版本,例如在master分支中将不包含新更新。
例子
https://github.com/username/projectname/blob/b8d94367354011a0470f1b73c8f135f095e28dd4/file.txt#L10

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

3- github不能自动链接到任何文件(自定义提交)或(主分支)
    由于存在业务问题

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

答案 6 :(得分: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 R。即,如果PR添加一行,则必须使用R。如果删除一行,则必须使用L

来自:Generate line pointer URL into Github Pull Request