我该如何从Github获取gist的原始版本?

39

我需要从一个原始的Gist中加载一个shell脚本,但我找不到获取原始URL的方法。

curl -L address-to-raw-gist.sh | bash

1
注意:gist原始URL已更改(2014年2月)。请参见下面的我的答案 - VonC
1
这回答了你的问题吗?gist文件的最新版本是否有永久链接? - Mohammad Ayoub Khan
4个回答

77

然而,查找源代码右上角的raw按钮即可。

原始URL应该像这样:

https://gist.githubusercontent.com/{user}/{gist_hash}/raw/{commit_hash}/{file}

注意:可以通过省略{commit_hash}部分来获取最新版本,如下所示:

https://gist.githubusercontent.com/{user}/{gist_hash}/raw/{file}

21
虽然该链接可以获取原始文件,但它是硬编码到特定的提交版本。 - spuder
2
有没有可能获取最新的原始版本?如果省略提交哈希值,也不起作用... - nerdoc
2
@nerdoc 只需在URL中省略提交哈希。例如,https://gist.github.com/aymericbeaumet/940d6360efe5a4618302c291c7b2d051/#file-useful-es6-js 将以原始版本访问,如 https://gist.githubusercontent.com/aymericbeaumet/940d6360efe5a4618302c291c7b2d051/raw/useful-es6.js - aymericbeaumet
我也曾这样想,因为它似乎很明显。但是它并没有起作用。我尝试了,但对我来说没有用。可能是有一个小的(缓存?)延迟吧?我转而使用GitLab片段,在那里它按预期工作。 - nerdoc
3
AAAARRRGGGHHH!我必须省略提交哈希值,但要在之后提供文件名。这很简单,但让我抓狂了。谢谢。请注意,需要翻译的内容在以下链接中:https://gist.githubusercontent.com/nerdoc/b6a202fd8b06bae681a244df6298af72/raw/test.txt - nerdoc
显示剩余2条评论

30

2014年2月:原始网址刚刚更改。
请查看"Gist原始文件URI更改":

所有Gist文件的原始主机立即更改。
此更改是为了进一步隔离用户内容和受信任的GitHub应用程序。

新主机为

 https://gist.githubusercontent.com. 

现有的URI将重定向到新主机。

以前是https://gist.github.com/<username>/<gist-id>/raw/...

现在是https://gist.githubusercontent.com/<username>/<gist-id>/raw/...

例如:

https://gist.githubusercontent.com/VonC/9184693/raw/30d74d258442c7c65512eafab474568dd706c430/testNewGist

KrisWebDev评论中添加:

如果您想获取Gist文档的最新版本,请从URL中删除<commit>/

https://gist.githubusercontent.com/VonC/9184693/raw/testNewGist


1
@KrisWebDev 很好的观点。为了更好的可见性,我已经在答案中包含了一个例子。 - VonC
3
所有Gist文件的原始主机立即更改。但我发现它并非立即生效。 - Gank
2
更好的方法也是要注意API: https://api.github.com/gists/9184693 你可以从那里获取raw_url并使用它。这个答案是正确的,毫无疑问,但API将永远不会过时,可能会像2014年2月再次更改。 - Michael Schneider

3

这个API返回JSON数据,你可以通过以下方式获取原始URL:url = json_data["files"][filename]["raw_url"]其中filename是gist中特定文件的名称。 - jkdev

2

Gitlab片段提供简短明了的URL,易于创建,并与命令行配合使用。

示例:通过修补/ etc / bash.bashrc启用bash完成

sudo su -
(curl -s https://gitlab.com/snippets/21846/raw && echo) | patch -s /etc/bash.bashrc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接