Git:覆盖或擦除存储库中的大文件(档案)?
Posted
技术标签:
【中文标题】Git:覆盖或擦除存储库中的大文件(档案)?【英文标题】:Git: overwrite or wipe large files (archives) from repository? 【发布时间】:2016-11-12 05:07:30 【问题描述】:我有一个使用第 3 方代码的存储库,该代码当前是使用 shell 脚本下载和编译的。这可行,但有时镜像很慢或无法访问。将它与我的代码捆绑在一起对我来说会更容易(因为第 3 方代码只是开源项目)。
但是,我不希望我的 git 存储库随着时间的推移变得庞大(就像通常那样,当您包含每次更新它们时都会存储的大型二进制文件时)。
有没有办法从 git 存储库中擦除 .tar.gz(或类似的)档案?
或者我可以在 foo.tar.gz
过时后以某种方式覆盖它吗?所以它只消耗最新版本使用的内存(并因此删除文件的旧版本)?
【问题讨论】:
查看git-lfs.github.com 这里是官方github doc关于处理大文件 【参考方案1】:有没有办法从 git 存储库中擦除 .tar.gz(或类似的)档案?
How to remove big files from the repository
有几种方法可以做到:
您可以使用git filter-branch
。
BFG Repo-Cleaner
BFG Repo-Cleaner
git-filter-branch 的替代品。
BFG 是 git-filter-branch 的一种更简单、更快速的替代方案,用于清除 Git 存储库历史记录中的不良数据:
删除疯狂的大文件删除密码、凭据和其他私人数据
示例(来自官方网站)
在所有这些示例中,bfg 是 java -jar bfg.jar 的别名。
# Delete all files named 'id_rsa' or 'id_dsa' :
bfg --delete-files id_dsa,rsa my-repo.git
GIT LFS (large file storage)
【讨论】:
以上是关于Git:覆盖或擦除存储库中的大文件(档案)?的主要内容,如果未能解决你的问题,请参考以下文章