首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从git repo中完全删除文件(从某个时间点)

从git repo中完全删除文件(从某个时间点)
EN

Stack Overflow用户
提问于 2011-06-24 17:58:38
回答 3查看 273关注 0票数 4

我有一个回购,大约有2030个提交。在提交2000年左右,一个文件被修改,这导致它的大小意外地从大约20M移动到1.2 GB。是否可以重写历史记录以删除此文件,但仅从commit 2000中删除?(我不想丢失此文件的先前历史记录)

我在想git-filter-branch,但是看不到一个方法来告诉它"from commit“--这是可能的吗?

干杯,迈克

EN

回答 3

Stack Overflow用户

发布于 2011-06-24 18:06:30

git-filter-branch的手册页包含了有关此问题的确凿和权威的示例。

如果你想在某个提交之前停止重写,比如在tag01之前

代码语言:javascript
复制
git-filter-branch ......  -- master ^tag01

用你已经拥有的东西来代替这些点。相反,tag01可能是任何提交式的(revspec)

PS:如果你使用标签,别忘了--tag-name-filter cat也会重写这些标签

票数 2
EN

Stack Overflow用户

发布于 2011-06-24 18:15:26

你为什么不

使用合并选项-Xtheirs

  • Garbage收集存储库以节省磁盘空间,
  1. 在提交2000时创建分支new,其中您不会将此文件修改为1.2 GB文件
  2. Rebase master to new
票数 1
EN

Stack Overflow用户

发布于 2013-02-02 06:18:49

你可能想试试BFG Repo-Cleaner,这是一种更快、更简单的git-filter-branch替代方案,用于从Git repos中删除大文件或私人数据。

下载the executable jar (需要Java6或更高版本)并运行以下命令:

$ java -jar bfg.jar ---blobs-大于100MB my-repo.git

任何超过100MB大小的文件(不在最近提交的文件层次结构中)都将从存储库的历史记录中完全删除。所有小于100MB的文件版本都将被保留,如问题中所指定。

完全披露:我是BFG Repo-Cleaner的作者。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6466235

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档