git:只保留特定文件的最新版本

时间:2012-08-30 06:24:57

标签: git pdf version-control github binaryfiles

我在github中保留了一些LaTex course notes。我的同事不知道如何使用LaTex,并要求我将最终的PDF文件放入回购邮件中。

保持二元构建结果是一个回购通常是个坏主意,并且每次推送后上传PDF as an extenal file都不方便。

有没有办法只在回购中保留最新版本的PDF?

2 个答案:

答案 0 :(得分:3)

如果您已经在github上,那么有一个名为“下载”的面板,您可以在其中添加您拥有的任何文件。如果你想在推送时将它添加到钩子中,可能会有一个API调用。您也可能只是构建+将pdf复制到您的Dropbox帐户/ rsync将其复制到公共文件夹/使用另一个share-my-files-API /...// p>

您可能最好生成pdf +电子邮件给他们,也可以通过钩子触发。

如果您最终构建,将pdf添加到repo然后更新该文件,repo将会变得非常大,因为它必须保留的差异将占用大量不必要的空间。

答案 1 :(得分:0)

从存储库中删除旧版本的文件没有简单易行的方法。每次提交都是安全的,这意味着提交的标识符是使用每个文件的内容构建的。有一些git存储库rewriting the history的方法,但这样做完全打破了任何协作的机会,因为每次重写历史记录时基本上都是创建一个新的存储库。

另一种方法是使用专门为此目标设计的git annex:在小型存储库中管理大型文件。不幸的是,这是一个非常新的功能,而且它不是官方Git的一部分,所以对它的支持并不是那么好。