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:覆盖或擦除存储库中的大文件(档案)?的主要内容,如果未能解决你的问题,请参考以下文章

在存储库中添加 .gitconfig 会覆盖我的全局 .gitconfig 文件配置吗?

git的大文件扩展名[关闭]

git进阶 | 03 -如何彻底删除git中的大文件

git进阶 | 03 -如何彻底删除git中的大文件

保护 git 存储库中的文件

记一次删除Git记录中的大文件的过程