我正在尝试使用curl下载特定github分支的最新版本。
curl -L https://github.com/nativescript/docs/tarball/production | tar zx
但是,这会创建一个文件,例如NativeScript-docs-ed0d16f
,因为名称会因每次提交而改变,因此很难在代码中使用。{1}}。有没有办法下载该文件,但是从命令行调用文件夹docs-latest
?
不知道下载文件的名称?
答案 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。