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

o0lyfsai  于 2023-05-27  发布在  Git
关注(0)|答案(9)|浏览(208)

我知道我可以链接到GitHub存储库中文件的特定行号(我相信我以前见过这个)。
我该怎么做?

9jyewag0

9jyewag01#

不要只链接到行号!请务必使用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。浏览器中的URL将更改为如下所示:

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

该链接包含该特定提交的实际SHA-1哈希,而不是master上文件的当前版本。这意味着该链接将永远有效,不会指向该文件未来版本可能包含的第18-20行。
现在,请尽情享受您的新永久链接的光辉吧。;-)
在这个答案最初写出来之后,watashiSHUN 指出,GitHub现在已经使获得永久链接变得更容易了。选择一行或多行后,左侧会显示一个...菜单,如下所示:

请参见watashiSHUN's answer
请注意,GitHub不显示某些“可渲染”文件的行号,如Markdown文件。将?plain=1添加到url将显示源文件的行号,例如https://github.com/git/git/blob/master/README.md?plain=1

w46czmvw

w46czmvw2#

broc.seib has a sophisticated answer,但我只是想指出,而不是按Y获得永久链接,GitHub现在有一个非常简单的UI,可以帮助您实现它。
1.单击行号选择一行,或按住Shift选择多行(与在File Explorer中选择多个文件夹的方式相同):

1.在所选第一行的右上角,展开...并单击 * 复制永久链接 *

1.就是这样。一个包含所选行和提交哈希的链接被复制到你的剪贴板:
https://github.com/python/cpython/blob/c82b7f332aff606af6c9c163da75f1e86514125e/Doc/Makefile#L1-L4

w1e3prcc

w1e3prcc3#

参见:

您可以使用永久链接在issues、PR等中包含代码片段。

参考文献:

Creating a permanent link to a code snippet

wtlkbnrh

wtlkbnrh4#

单击行号,然后从地址栏复制并粘贴链接。若要选择一个范围,请单击该数字,然后按shift键单击后面的数字。
或者,链接是一种相对简单的格式,只需使用文件链接将#L<number>附加到特定行号的末尾。下面是git存储库的README的第三行的链接:
https://github.com/git/git/blob/master/README#L3

zzwlnbp8

zzwlnbp85#

许多编辑器(但也请参阅下面的 * 命令 * 部分)支持链接到GitHub或Bitbucket(或其他)上的文件行号或范围。下面是一个简短的列表:

Atom

Open on GitHub

Emacs

git-link

Sublime Text

GitLink

Vim

gitlink-vim

命令

  • git-link- Git子命令,用于获取到Git对象的存储库浏览器链接
  • ghwd-打开与shell当前分支和工作目录匹配的GitHub URL
t2a7ltrp

t2a7ltrp6#

与如何将GitHub存储库的 * README.md * 文件链接到特定的代码行数有关
你有三个案子:
1.我们可以 * 链接到 *(自定义提交
但是 Link 将 * 始终 * 链接到旧文件版本,例如,它将 * 不 * 包含master分支中的新更新。示例:

https://github.com/username/projectname/blob/b8d94367354011a0470f1b73c8f135f095e28dd4/file.txt#L10

1.我们可以像(master-branch)一样 *link到 *(custom分支)。但链接将 * 始终 * 链接到最新的文件版本,其中将包含新的更新。由于有新的更新,链接可能指向无效的业务行号。示例:

https://github.com/username/projectname/blob/master/file.txt#L10
  • GitHub不能 * 自动 * 链接到任何文件(自定义提交)或(主分支)。由于以下业务问题:
    **业务含义,要在新文件中链接到它
    **目标高亮代码长度
    可更改
qkf9rpyu

qkf9rpyu7#

链接到GitHub wiki页面上的行号

我在寻找如何链接到GitHub wiki页面上的特定位置时遇到了一些麻烦,最终发现了这个问题。这可能是常识,但我不知道这一点,其他人可能会发现它很有用。
当你浏览一个wiki文件时,你可以把鼠标放在一个特定的标题文本上,一个链接图标就会出现。单击此链接图标,您的浏览器导航URL将被更新(例如:https://github.com/user/repository/wiki/Test#title-1)。这将是指向wiki文件中特定位置的链接。

drnojrws

drnojrws8#

如果您想预览Markdown代码片段的渲染效果,请在复制另一个答案中提到的链接后,从链接中删除?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 documentation: Creating a permanent link to a code snippet

xkrw2x1b

xkrw2x1b9#

获取拉取请求中的行。

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
From:Generate line pointer URL into Github Pull Request

相关问题