【发布时间】:2022-05-20 02:56:36
【问题描述】:
我知道我可以链接到 GitHub 存储库上文件的特定行号(我确定我以前见过这个)...
谁能告诉我怎么做?
【问题讨论】:
我知道我可以链接到 GitHub 存储库上文件的特定行号(我确定我以前见过这个)...
谁能告诉我怎么做?
【问题讨论】:
不要只链接到行号!一定要使用canonical URL。否则,当该文件更新时,您的 URL 将指向错误的行!
如何永久链接到正确的行:
单击您想要的行号(如第 18 行),您的浏览器中的 URL 将在末尾添加一个 #L18。您实际上是单击左侧的18,而不是代码行。看起来像这样:
现在您的浏览器 URL 如下所示:
https://github.com/git/git/blob/master/README.md?plain=1#L18
如果要选择多行,只需按住 shift 键并单击第二个行号,例如第 20 行。如下所示:
现在您的浏览器 URL 如下所示:
https://github.com/git/git/blob/master/README.md?plain=1#L18-L20
这是重要的部分:
现在按y 键获取该特定提交的规范网址。您浏览器中的 URL 将变为如下所示:
https://github.com/git/git/blob/5bdb7a78adf2a2656a1915e6fa656aecb45c1fc3/README#L18-L20
该链接包含该特定提交的实际 SHA 哈希,而不是 master 上文件的当前版本。这意味着该链接将永远有效,并且不会指向该文件可能包含的任何未来版本的第 18-20 行。
现在沐浴在您的新永久链接的光芒中。 ;-)
2017 年 9 月 29 日更新: 正如@watashiSHUN 所指出的,github 现在通过在您选择一个或更多行。也请查看@watashiSHUN's answer。
2016 年 3 月 25 日更新: 举个例子——在上面的例子中,我提到了 URL 中的“README”文件。编写此答案时,这些非规范网址实际上有效。但现在这些网址不再有效,因为README 已移至README.md。但正如预期的那样,带有 SHA 哈希的规范 URL 仍然有效。
2022 年 4 月 17 日更新:有些文件像 Markdown 文件一样是“可渲染的”。 Github 要求 ?plain=1 显示它们的内容而不是渲染。
【讨论】:
y 键...help.github.com/articles/getting-permanent-links-to-files
L18-L20,L29,并且一个人可以CTRL-单击添加非连续行。我认为您的想法是一个很好的建议,并且非常有用。
README 是README.md 怎么办?
@broc.seib has a sophisticated answer, 我只想指出,github 现在有一个非常简单的 UI 可以帮助您实现它,而不是按 y 来获取永久链接
【讨论】:
您可以使用永久链接在问题、PR 等中包含代码 sn-ps。
参考资料:
https://help.github.com/en/articles/creating-a-permanent-link-to-a-code-snippet
【讨论】:
单击行号,然后从地址栏中复制并粘贴链接。要选择一个范围,请单击数字,然后按 shift 单击后面的数字。
或者,链接是一种相对简单的格式,只需将#L<number> 附加到该特定行号的末尾,使用指向文件的链接。这是git存储库README第三行的链接:
【讨论】:
y。 ;-)
许多编辑器(也请参阅下面的命令部分)支持链接到 GitHub 或 BitBucket(或其他)上文件的行号或范围。这是一个简短的列表:
【讨论】:
与如何将GitHub存储库的README.md链接到特定行号的代码有关
你有三种情况:
我们可以链接到(自定义提交)
但链接将始终链接 到旧文件版本,其中不包含新的更新 以主分支为例。示例:
https://github.com/username/projectname/blob/b8d94367354011a0470f1b73c8f135f095e28dd4/file.txt#L10
我们可以像(master-branch)一样链接到(自定义branch)。 但该链接将始终链接到包含新文件的最新文件版本 更新。由于新的更新,该链接可能指向无效的业务线编号。 示例:
https://github.com/username/projectname/blob/master/file.txt#L10
GitHub 不能自动链接到任何文件(自定义 提交)也不(主分支) 由于以下业务问题:
【讨论】:
如果你想获得一个markdown code sn-p的预览渲染,在复制the other answer中提到的链接后,从链接中删除?plain=1参数。
例如,以下将显示纯文本链接:
github.com/<organization>/<repository>/blob/<branch_name>/README.md?plain=1#L14
去掉?plain=1参数后,会显示代码预览:
github.com/<organization>/<repository>/blob/<branch_name>/README.md#L14
请参阅GitHub Docs: Creating a permanent link to a code snippet 了解更多信息。
【讨论】:
对于拉取请求中的一行。
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。
【讨论】: