如何防止Github将Mac OSbundle视为文件夹并压缩它们?



我最近开始了我自己的GitHub repo,我上传了一个Xcode插件。这个插件基本上是一个文件夹内的文件。由于某种原因,Github将插件放入zip文件中。我怎么能改变这一点,使插件上传没有被压缩?

macOS捆绑包确实是包含文件的文件夹。通常,在命令行中使用Git处理这个问题的方法是使用mv命令。从您的存储库开始:

$ mv $PLUGIN_DIR .
$ git add .
$ git commit
# Enter your commit message.

则可以使用git push进行push。

然而,在存储库中存储二进制文件通常不是一个好主意。相反,您应该将插件的源代码存储在存储库中,并将二进制文件作为发布资产上传,该发布资产通常应该是tarball或zip文件(因为这样更容易下载)。要做到这一点,将插件构建到一个目录中(例如,foo),然后执行以下操作之一(在macOS上):

# For a tarball.
$ tar -czf plugin.tar.gz foo
# For a zip file.
$ tar --format zip -cf plugin.zip foo

然后,在GitHub web界面中创建一个发布并拖放tarball或zip文件作为资产之一(或使用gh命令行工具上传它),然后您可以发布发布。

GitHub不允许在发布资产界面中上传整个递归文件夹的原因是没有一种简单的方式(通过UI或API)下载这些文件夹。你实际上一次只能下载一个东西,这就需要某种形式的存档。

最新更新