git - 重写历史是使用 git lfs 和现有 git repo 大文件的必要步骤吗?
问题描述
我们有一个现有的 git 存储库,其中包含一些大文件。
我们喜欢将它们与 git lfs 和 Artifactory 一起使用。
我们在 stackoverflow 上阅读了一些关于这个主题的问题/答案。
我们希望避免为这些文件重写 git 历史记录。
我们看到 Lars Schneider 的幻灯片使用
git lfs track "/big/*"
我们想知道是否
- 如果我们将这些大文件移动到“/big/”目录中,并
随着我们项目的发展,随着时间的推移从它们以前的路径中删除这些大文件,我们就可以避免重写 git 历史记录,从而
减少 repo 的大小。
谢谢
解决方案
保留历史意味着:保留直接引用大文件的现有提交。
如果您可以保留它,那么是的,您可以保留历史记录,并且
/big/
仅在当前提交之后才开始使用 lfs。如果你想从现有的提交中删除大文件:你只能通过重写这些提交和现有的历史来做到这一点。
推荐阅读
- gradle - 将 kapt 与多平台子项目一起使用
- python-2.7 - 获取'ClientError:调用HeadObject操作时发生错误(403):Forbidden'同时使用boto3进行文件的跨帐户复制
- java - 为什么 Hikari 构造了一个错误的数据库 url?
- xml - XSLT 无法获取嵌套节点的值
- azure - 创建逻辑应用程序以读取数据库中的条目
- c - 在位域上转换 uint64_t
- flutter - 为什么在flutter中父状态发生变化时不调用child的build方法?
- python-3.x - 从 DEEP 嵌套列表中删除子列表
- php - 数据库连接问题
- php - 如何手动更新 Directus CMS:“字段”(文本输入)问题,v8.3.0