2

更新:这是此问题的GitHub 测试存储库

我将屏幕截图 ( screenshot.png) 存储在单独的 Git 分支 ( assets) 中,以便在 README.md 文件中使用(在master分支上)。

要查看 GitHub 上的图像,我必须链接到:

/../assets/screenshot.png

或者

../assets/screenshot.png

但是,这在本地查看README文件时不起作用,图像不显示(例如在VS Code或Atom中使用Markdown预览功能时)。

我什至使用了git worktree功能来检查assets子目录中的assets分支:

git worktree add -B assets assets origin/assets

所以目录结构是这样的:

.git
assets
assets/screenshot.png
README.md

这意味着,为了在 README 文件中本地查看图像,我必须链接到

/assets/screenshot.png

或者

assets/screenshot.png

如何调和这两个“世界”?

有没有办法链接到屏幕截图,所以它总是显示,“无论我在 GitHub 本身上查看文档,还是在本地查看文档,使用不同的标记渲染器” *

4

2 回答 2

2

不,这是不可能的,你不应该期望它。

您应该使资产文件夹成为您的主分支的一部分,或者您应该将两者分成不同的存储库,或者类似的东西。

GitHub 提供此屏幕截图是有充分理由的,但“充分理由”只是与 GitHub 如何从您的存储库提供内容相关的技术原因。

让我们看看您的屏幕截图的 URL,它在您的主存储库页面提供的 HTML 中使用:

https://raw.githubusercontent.com/devliber/ReadmeScreenshotBranch/assets/screenshot.png

如您所见,带有图像的分支名称是 URL 的一部分。让我们尝试将 URL 破解回您的 README:

https://raw.githubusercontent.com/devliber/ReadmeScreenshotBranch/master/README.md

如果您尝试使用此 URL,您会看到它显示了您的 README 文件。

所以这里的问题是你从另一个分支获取屏幕截图的“hack”是你得到这个 URL:

https://raw.githubusercontent.com/devliber/ReadmeScreenshotBranch/master/../assets/screenshot.png

这将解析为与我在此处发布的第一个 URL 完全相同的 URL,这就是您看到该图像的原因。

但是,如果您签出分支 X,那么您不应该期望分支 Y 中的任何内容出现在您的工作文件夹中。它在 GitHub 上“有效”,因为它们从您的分支提供内容的方式,但它不会,也不应该在本地工作,除非您开始使用工作树检查多个分支。

于 2018-04-05T11:34:42.813 回答
0

如果您可以使用外部服务,您可以使用jsDelivr在不同的分支上显示图像。

例如,如果您有两个分支main,并且assets在 下username/repo,您可以assets同样链接分支下的图像:

# README.md

![Image from another branch](https://cdn.jsdelivr.net/gh/username/repo@assets/screenshot.png)

但是,这在本地不起作用。

于 2020-10-08T17:06:35.460 回答