git - 强制 git 自动删除以前版本的二进制文件——这可能吗?
问题描述
我正在尝试将其Github
用于一些学术工作,作为 Dropbox 和 Google Drive 等重量级云存储系统的替代品。这意味着我想将 PDF 图形和手稿保存到我的 git 存储库中,以便协作者可以从我的私人存储库中克隆/提取这些东西(我.tex
在同一个存储库中有代码和文件,因此,我觉得 git还是合适的)。不幸的是,由于保存了这些旧的、不需要的科学数据版本,.git
文件夹的大小很快就会变大(我们在确定一些值得发表的东西之前会产生很多)。git
是否可以让 git在每次提交时自动删除所有二进制(.pdf、.png 等)文件的版本历史记录?也就是说,对于某些文件类型,git 只会跟踪最近提交期间存在的文件。
或者,是否有一个简单的命令可以用来定期清除git 中的二进制文件版本历史记录,以便在.git
开始变得庞大时运行它?
解决方案
Git 并非旨在作为备份服务。它是作为版本控制系统构建的。这意味着 git 跟踪的任何文件都必须具有更改历史记录。所有更改都存储在 .git 的存储库中。
你不应该使用Git 作为 Dropbox 或 Google Drive 的替代品,因为它们有两个完全不同的目的。
如果您确实需要对大文件进行版本控制,那么您应该查看git-lfs。再一次,这是一个版本控制系统,而不是一个文件存储系统。它仍将存储有关文件所有版本的所有信息。如果您只需要文件存储,那么您应该使用现有的云存储系统。
推荐阅读
- python - 如何提取字符串的哪些句子已更改或不存在于另一个字符串中?
- javascript - 根据年份获取计数
- python - 使用等同于 wget 命令的 Python wget 代码从 LAADS 下载数据
- reactjs - 在函数成功执行后重定向到 React App 的特定部分
- c# - Selenium C#:如何在另一个类中获取一个类的属性/属性?
- javascript - 通过嵌套对象属性映射时如何减少嵌套?
- spring-boot - shiro buji pac4j cas 单点注销不起作用
- linux - Azure Linux VM 上的 OpenSSH SSH-2 私钥(旧 PEM 格式)
- javascript - 无法使用 useState 更改 React 状态
- python - 在 Python 中加载大量(600)大图像(42M 像素)的最快方法