首页 > 解决方案 > Github 发布:如何将符号链接内容包含到源代码中?

问题描述

我们正在为我们的项目使用 Githubreleases工具。

Github 发布资产

它工作得很好。Github 会自动生成源文件的存档。但是,我们必须windows symlinks在源文件中的其他文件夹。

对于程序的某些部分,我们在项目之间使用共享源代码。这些在每台计算机上克隆一次,每个需要它的存储库都使用符号链接链接到这些存储库。

有没有办法强制 github 包含符号链接内容,而不是作为参考,而是作为Source code存档中的深层副本?

我们希望确保我们可以在几年内再次编译程序并获得相同的二进制输出,即使公共代码库在此期间已经发展。

标签: gitgithub

解决方案


不,你不能这样做。GitHub 本质上是git archive在后台使用(尽管不能保证它会继续使用),它不会以任何方式取消引用符号链接。

即使git archive支持取消引用符号链接,当 GitHub 归档它时,也无法知道指向工作树之外的符号链接应该去哪里。GitHub 不知道您如何在计算机上组织源代码。

如果要生成取消引用符号链接的档案,则需要执行以下操作(对于 GNU tar):

git ls-files | xargs tar -uvhf ../archive.tar

请注意-h取消引用符号链接的选项。然后,您可以使用或您选择的压缩器压缩此存档,gzip并将其作为发布资产上传,无论是手动还是使用 API。


推荐阅读