我知道我可以链接到github repo上文件的特定行号(我确定我以前见过这个)...
有人可以告诉我该怎么做吗?
答案 0 :(得分:511)
不要只是链接到行号!一定要使用canonical URL。否则,当该文件更新时,您将有一个指向错误行的URL!
如何建立与正确行的永久链接:
单击所需的行号(如第18行),浏览器中的URL将在末尾添加#L18
。你真的点击左侧的18
,而不是代码行。看起来像这样:
现在您的浏览器网址如下所示:
https://github.com/git/git/blob/master/README#L18
如果您想要选择多行,只需按住Shift键并单击第二行号,如第20行。看起来像这样:
现在您的浏览器网址如下所示:
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。
更新3/25/2016:案例 - 在上面的示例中,我提到了" README"文件在网址中。当这个答案写完时,那些非规范的网址实际上是有用的。但是,自README
移至README.md
以来,这些网址已不再有效。但是,使用SHA哈希的规范URL仍然可以正常工作。
答案 1 :(得分:48)
@broc.seib has a sophisticated answer,我只想指出,不是按y
来获取永久链接,github现在有一个非常简单的用户界面可以帮助您实现它
答案 2 :(得分:17)
单击行号,然后从地址栏复制并粘贴链接。要选择范围,请单击该数字,然后按住Shift键单击后面的数字。
或者,链接是一种相对简单的格式,只需使用指向该文件的链接将#L<number>
附加到该特定行号的末尾即可。这是指向git
存储库README
的第三行的链接:
https://github.com/git/git/blob/master/README#L3
答案 3 :(得分:9)
您可以使用永久链接在问题,PR等中包含代码段。
<强>参考文献:强>
https://help.github.com/articles/creating-a-permanent-link-to-a-code-snippet/
答案 4 :(得分:6)
许多编辑器(但也参见下面的命令部分)支持在GitHub或BitBucket(或其他)上链接到文件的行号或范围。这是一个简短的清单:
答案 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不能自动链接到任何文件(自定义提交)或(主分支)
由于存在业务问题
答案 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
。