我有一个包含 LaTeX 项目的存储库,其中包含从 .tex 文件编译和生成的 .pdf。我希望历史和源文件是私有(private)的,但 .pdf 应该是公开的并且具有固定的 URL。 GitHub 本身为单个文件提供了一个固定的 URL,但为了使其公开可用,我需要将存储库设置为公开,这也会向公众公开历史记录和所有其他文件。
您认为有什么方法可以让 GitHub(或 BitBucket 或...)将单个 .pdf 文件推送到其他地方,以便它具有固定的唯一公共(public) URL?我想我可以以某种方式将它推送到 AWS 的 S3 或让 Lambda 接收 HTTP 调用并获取单个文件,但我不知道可能有更简单的方法。
最佳答案
继续 Max 的回答,一种解决方案可能是维护单独的私有(private)和公共(public) repo 协议(protocol)。我喜欢这个选项,因为您不必引入其他服务。您的工作流程可能如下所示:
- 在您的私有(private)仓库中本地编译您的 PDF
- 将更改提交到您的私有(private)仓库
- 有一个提交后的 git 钩子(Hook)来将编译后的 PDF 复制到你的本地公共(public)仓库
- 从您本地的公共(public)仓库推送到 Github
对于提交后 Hook ,在 git .git/hooks
目录中创建一个名为 post-commit
(无扩展名)的文件。然后只需在该文件中放置一个 bash 命令,将 PDF 从私有(private)仓库复制到公共(public)仓库,例如:cp ~/private-repo/document.pdf ~/public-repo/document.pdf
.
关于Git:管理推送事件的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49388121/