如何永久 link 到 GitHub 中的行号?

How to PERMANENTLY link to a line number in GitHub?

链接到 GitHub 中的行号很容易:单击该行可将 URL 编辑为指向该行,以便我们共享它。

但是,如果文件随着新的提交而改变,行号可能会偏移,这会使现有的 link 变得不准确且令人困惑。

如何永久link到GitHub中的一行代码?我经常遇到代码更改的旧 links。

但是我发现我可以像这样选择一个提交的差异和 link 到那个差异,在这里,在 base.pyline 150 上,例如: https://github.com/deepmind/sonnet/commit/60be2bb4ccd74230285c1c822452a99558915c50#diff-62bce8ca7517a19cdfdee428fc985bf1R150

但我认为 link 对特定提交进行混淆(或有点矫枉过正),因为提交可能根本不关心我想在文件中指向的内容。

有没有人有更简洁的方法来 link 到 GitHub 中的行号? (例如:指向特定文件版本而不是提交会更干净 IMO)

您可以 link 到提交的树而不是它的差异,获得这个 link 的最简单方法是 GitHub 的 permalink 键盘快捷键:单击分支树上的线后按 Y

如果您想从提交而不是分支到达那里,请使用 header 中的“浏览文件”按钮。

手动构建,路径为:

/blob/<hash>/<path...>#L<line>

完成你的例子link:

https://github.com/deepmind/sonnet/blob/60be2bb4ccd74230285c1c822452a99558915c50/sonnet/python/modules/base.py#L150

这几乎是不可能的。

最接近的是指向一个特定的引用,例如通过单击提交中的 "Browse files":

https://github.com/deepmind/sonnet/blob/60be2bb/sonnet/python/modules/base.py#L150

一个更简洁的解决方案可能是 link 一个特定的标签,假设它包含您的提交:

https://github.com/deepmind/sonnet/blob/v1.6/sonnet/python/modules/base.py#L150

但是,在某些情况下,您 运行 存在从存储库历史记录中删除该提交的风险。但是,在维护良好的 public 存储库中,提交引用和标签 应该 提供合适的 links.