【问题标题】:Github API zip file naming structure changeGithub API zip 文件命名结构更改
【发布时间】:2021-09-10 05:44:19
【问题描述】:
github API 正在重命名根文件夹名称。公共 git 示例:https://api.github.com/repos/roots/sage/zipball/master 下载的文件被重命名为:roots-sage-9.0.9-83-ge7de7b2.zip 根文件夹名称也被重命名。这对于根文件夹名称需要保持不变的项目(如 WordPress 插件或模板)来说真的很糟糕。
有没有办法选择下载的文件名?
【问题讨论】:
标签:
git
github
repository
【解决方案1】:
GitHub 总是会生成一个带有根目录的存档,其中包含一些修订信息。这可能是分支名称、标签名称或git describe 的输出,正如您在本例中看到的那样。
如果你不喜欢这样,你有一些选择:
- 克隆存储库,可能使用
--depth 1,并使用 git archive 生成您自己的 zip 或 tar 存档,并带有所需的 --prefix 选项(不要忘记包含尾部斜杠)。
- 使用
bsdtar 的-s 选项来修改存档名称,如下所示:bsdtar -s '!^roots-sage-[^/]*!roots-sage!' -xvf archive.zip。 GNU tar 不能用于 zip 文件,但类似的选项 --xform 将适用于 tar 文件。
- 手动重新打包存档,使用
unzip、mv和zip,或者对于tar存档,使用tar和mv。
请注意,如果您为 Unix 分发某些东西,tar 存档比 zip 存档更常用,因为它们更好地保留权限。
对于存档,名称由服务器指定,但您不必遵守它。例如,您可以使用curl 的-o 选项以您想要的任何名称写入文件。在 Unix 系统上习惯使用 curl,但如果您想使用其他东西,请参阅该工具的文档以获取信息。