在 gitlab wiki 中的给定提交中引用存储库文件

Luc*_*ano 5 gitlab

Gitlab Markdown 支持对存储库结构中文件的引用,例如:

[README](doc/README)

或者

[README](doc/README#L13)

但是有没有办法引用这些文件中的文件和行,但是来自给定的提交,至少在 Wiki 中?

也许是这样的:

[README](1ab3fa71:doc/README#L13)

或使用文件哈希 ID,如:

[README](9a27b101#L13)

doa*_*oak 5

根据Gitlab 的文档(v11.5),官方支持使用从 wiki 到存储库的相对链接(或者反过来):

注意:相对链接不允许引用 wiki 页面中的项目文件或项目文件中的 wiki 页面。这样做的原因是,在 GitLab 中,wiki 始终是一个单独的 Git 存储库。例如,当链接位于 wiki 降价文件中时,我是一个参考样式链接将指向 wikis/style 的链接。

但是,有一种语法目前似乎有效:

[[README|/../blob/1ab3fa71/doc/README#L13]]
Run Code Online (Sandbox Code Playgroud)

但请注意:同一段落的所有文本都将丢失!

我通过这样的措辞来解决这个问题,至少在Gitlab CE v11.3.0中呈现出预期的效果

Here you see xyz:
* [[README|/../blob/1ab3fa71/doc/README#L13]]
Run Code Online (Sandbox Code Playgroud)

根锚定链接 ( /../blob/<version>/<path-to-file>) 确保它可以在每个 Wiki 页面上独立于其嵌套深度工作。当然,此语法也适用于分支名称或任何其他相关链接/../tree/1ab3fa71/doc,例如。

  • 根据我的经验(GitLab 14.8.2),使用这种类型的链接不会删除整个段落的文本,只是删除一些渲染块。解决方法是将链接包含在空链接标记中: []()[[README|/../blob/1ab3fa71/doc/README#L13]][]() 或者在 span 元素中,当您使用 HTML 语法时: &lt;跨度&gt;[[自述文件|/../blob/1ab3fa71/doc/README#L13]]&lt;/span&gt; (2认同)

Mat*_*ter 5

我发现,在大多数情况下,有效的一种方法是将鼠标悬停在相关文件中要引用的代码行上。执行此操作时,单击左侧装订线中显示的链接图标以复制线条引用。复制后,您可以在复制的 URI 中使用稍微修改过的路径版本。

以下是使用装订线图标复制链接的示例:

https://gitlab.com/settermjd/mezzio-sms-sender-api/-/blob/main/src/App/src/Handler/SMSReplyHandler.php#L23
Run Code Online (Sandbox Code Playgroud)

这是我在提交中使用的修改后的路径。请注意之前的父目录引用main/

/../main/src/App/src/Handler/SMSReplyHandler.php#L23
Run Code Online (Sandbox Code Playgroud)


Luc*_*ano 0

我意识到 gitlab wiki 中的文件引用是来自 wiki 存储库本身的文件引用,而不是来自项目存储库(源代码存储库)的文件。

但是,当您引用哈希时,它知道该哈希是引用提交还是文件,因此您可以引用项目存储库中的特定文件。