从GitHub下载tarball时更改顶级目录的名称?

时间:2016-10-06 00:16:51

标签: git github

我正在尝试使用curl下载特定github分支的最新版本。

curl -L https://github.com/nativescript/docs/tarball/production | tar zx

但是,这会创建一个文件,例如NativeScript-docs-ed0d16f,因为名称会因每次提交而改变,因此很难在代码中使用。{1}}。有没有办法下载该文件,但是从命令行调用文件夹docs-latest

不知道下载文件的名称?

1 个答案:

答案 0 :(得分:3)

使用较新的.../archive/...链接,而不是问题中的.../tarball/...链接。一般格式为:

https://github.com/<group_or_organization>/<repo>/archive/<refspec>.tar.gz

所以,例如:

$ curl -L jttps://github.com/nativescript/docs/archive/production.tar.gz | tar tz
docs-production/
docs-production/.gitattributes
docs-production/.gitignore
docs-production/.gitmodules
docs-production/.vscode/
docs-production/.vscode/settings.json
docs-production/README.md
...

您可以看到生成的顶级目录名称使用您提供的任何<refspec>,而不是将其转换为提交ID。

类似地:

$ curl -s -L https://github.com/nativescript/docs/archive/ErikEdits-css-annimations.tar.gz   | tar tz
docs-ErikEdits-css-annimations/
docs-ErikEdits-css-annimations/.gitattributes
docs-ErikEdits-css-annimations/.gitignore
...

您可以使用其他git refspecs代替分支名称。例如:

https://github.com/nativescript/docs/archive/HEAD^.tar.gz

或者:

https://github.com/nativescript/docs/archive/v2.3.0-20-ged0d16f.tar.gz

但在这些情况下,引用转换为提交ID。