如何使用 GitHub Issue 中的源代码链接?

Tob*_*Seo 16 github

我想在问题中引用 GitHub 存储库中文件中的某些行。如何在不手动复制和粘贴的情况下执行此操作?我可以使用源代码链接吗?

为了澄清这一点,这里是我想要引用代码的文件:

mysource.py

1: def func1():
2:    for i in range(10);
3:        print 'hello world'
4: 
5: def func2():
6:     for i in range(10);
7:        print 'hello world'
Run Code Online (Sandbox Code Playgroud)

我想在我的问题中引用文件的第 5 行到第 7 行,如下所示:

5: def func2():
6:     for i in range(10);
7:        print 'hello world'
Run Code Online (Sandbox Code Playgroud)

Ric*_*way 19

现在,您可以通过选择一系列行并使用create issue菜单选项来执行此操作:

例子

在 GitHub 上的源文件中选择行后可用的菜单的屏幕截图

...导致:

创建的 GitHub 问题的屏幕截图,其中通过链接在问题中内嵌了代码列表

脚步

  1. 转到源文件
  2. 选择行的范围(例如,单击感兴趣的第一行,然后shift + click最后一行)
  3. 来自...左侧菜单中选择create an issue
  4. 将出现一个问题页面,其中包含指向这些行的链接,该链接呈现为源代码视图。


Vas*_*nov 10

关键是获得代码的永久链接,该链接将由 GitHub Markdown (GFM) 自动转换为代码片段。完成以下步骤后,创建问题或评论后整个事情应该如下所示:

带有代码片段的 GitHub 问题评论

实例

按着这些次序:

  1. 进入需要引用的源码页面。例如: https: //github.com/roots/trellis-cli/blob/master/cmd/venv_hook.go
  2. 单击相应代码旁边的行号。所选行现在应为黄色,并且三点按钮应出现在行号旁边,如下所示:

    行号附近的三个点按钮

    提示:如果要引用多行代码,请单击第一行号,然后按住Shift第二行号。
  3. 单击三个点按钮,选择“复制永久链接”:

    处于活动状态的三点按钮,悬停在“复制永久链接”选项上
  4. 转到您要引用代码的问题。将永久链接粘贴到那里。该链接应如下所示:
    https://github.com/roots/trellis-cli/blob/a389115eb35e3c322e084183dc41497ffd67e7e0/cmd/venv_hook.go#L25-L27
    请注意,源代码的链接现在在 URL 中具有提交 SHA而不是分支名称master

  • 我明白了为什么它不起作用。它只能在同一个存储库中工作。如果您链接到另一链接,它不会格式化它。尝试例如https://github.com/ipjohnson/Grace.DependencyInjection.Extensions/blob/e5af2af562bd6020fd9f88204f8b866b2fad4aa4/src/Grace.DependencyInjection.Extensions/GraceRegistration.cs#L216-L234 (4认同)
  • @silkfire 谢谢伙计,这让我发疯——有时它似乎有效,有时无效,从来没有注意到这种微妙的差异。 (2认同)

mst*_*sen 8

您可以添加以下哈希片段。

https://github.com/username/repo/mysource.py#L5-L7

只是尝试了一下,甚至不知道这是可能的。


grg*_*grg -3

不,这是不可能的。但是,您可以在拉取请求的“文件已更改”选项卡上创建行注释,该注释可以通过标准 # 引用来引用问题。

  • 这已经有几年了,请参阅@mstaessen 答案 /sf/answers/1933122341/ (5认同)