git 删除文件最旧的修订版本

2023-12-26

我有一个 33 MB 的大文件,我想永久删除该文件的最旧版本,因此我只保留最新的 X 版本。怎么做?

我的裸存储库因此变得巨大。

我已尝试以下操作..但它完全删除了该文件

git filter-branch --index-filter 'git rm --cached --ignore-unmatch big_manual.txt' HEAD

为了识别我的存储库中的大文件,我使用亚里士多德·帕加尔齐斯 (Aristotle Pagaltzis) 的 git-large-blob https://stackoverflow.com/questions/298314/find-files-in-git-repo-over-x-megabytes-that-dont-exist-in-head.


我认为你走在正确的轨道上git filter-branch你尝试过的命令。问题是您没有告诉它将文件保留在任何提交中,因此它被从所有提交中删除。现在,我认为没有办法directly tell git-filter-branch跳过任何提交。但是,由于命令在 shell 上下文中运行,因此使用 shell 删除除最后 X 个修订之外的所有修订应该不会太困难。像这样的事情:

KEEP=10 I=0 NUM_COMMITS=$(git rev-list master | wc -l) \
git filter-branch --index-filter \
'if [[ ${I} -lt $((NUM_COMMITS - KEEP)) ]]; then
     git rm --cached --ignore-unmatch big_manual.txt;
 fi;
 I=$((I + 1))'

那会保留big_manual.txt在最近 10 次提交中。

话虽这么说,就像 Charles 提到的那样,我不确定这是否是最好的方法,因为您实际上通过删除旧版本来消除 VCS 的全部意义。

您是否已经尝试过优化 git 存储库git-gc and/or git-repack?如果没有,这些可能值得一试。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

git 删除文件最旧的修订版本 的相关文章

  • 如何完全删除使用init创建的git存储库?

    我创建了一个 git 存储库git init 我想完全删除它并启动一个新的 Git 将其所有文件保存在 git目录 只要删除那个并再次初始化即可 如果你找不到它 那是因为它被隐藏了 In Windows 7 you need to go t
  • svn diff 或 git diff 中带有 at 符号的“@@...@@”元行是什么意思?

    当我使用svn diff or git diff它显示如下行 1 5 1 9 他们的意思是什么 这些称为 c hunk 标头并包含范围信息 它们周围有双标志 它们的格式如下 l s l s where l是起始行号并且s是 c hunk 应
  • 推动而不承诺

    我有一个 git 存储库 我刚刚将其推送到服务器 然后我在服务器上设置了一个接收后挂钩 我想检查一下它是否有效 我必须再次提交才能看看它是否有效 我真的很想在尝试进行此设置时强制推动 而不是继续进行没有实际价值的提交 它不起作用 我只是不明
  • 使用 git 组织多个项目的最佳方式是什么

    我有 5 10 个独立项目 希望使用 Git 将其置于版本控制之下 组织项目 存储库的最佳方式是什么 每个项目使用一个存储库 对我的所有工作使用一个存储库 并为每个项目使用子目录 或者完全不同的东西 什么对你最有效 为什么 我肯定会说每个项
  • gitk 无法在 macOS 10.14 (Mojave) 上启动

    当我尝试在 macOS Mojave 10 14 4 上运行 gitk 时 出现以下错误 Error in startup script file System Library ScriptingDefinitions CocoaStand
  • 如何摆脱指向origin/master的远程origin/HEAD?

    最近 我在两个不同的复制服务器上更改了我的原始遥控器 现在我在服务器上遇到这种情况 一切正常 git branch a master remotes origin master 在另一台服务器上我有这个 git branch a maste
  • Git - 如何从远程存储库中删除文件

    如何从远程 git 存储库中删除文件 我有一个刚刚从本地存储库中删除的文件 我想从其相应的远程存储库中删除它 如果您从工作树中删除了文件 则提交删除 git commit a m A file was deleted 并将您的提交推向上游
  • git pull 之间的区别master 与 git merge master 对比

    没有远程存储库 只有一个具有两个分支的本地存储库 git branch a master devel 正在执行命令在这方面相同 同义词 git pull master and git merge master UPDATE git help
  • 与 Git 持续集成

    我想在 Git 之上提供集成挂钩 以便在集成失败时推送被拒绝 例如 当开发人员推送他的更改时 我想检查该项目是否仍然可以成功编译 目前 我设置了更新后挂钩来进行编译检查 但是 当我想拒绝推送时 我会恢复更改并通知开发人员 git rever
  • 使用 Git“正确”合并代码

    我刚刚通过合并 FETCH HEAD 并获取我最近的更改而不是他的更改来覆盖我同事的代码 我想恢复到合并之前 然后进行合并 强制在他接触文件的地方接受他的更改 但在没有任何其他更改的地方进行合并 我的 git 日志 使用 l2 创建 现在看
  • Git revert 导致合并冲突

    我创建了一个虚拟 txt 文件 并在每次提交中输入一个新行 例如 dummy txt first commit second commit third commit 现在我想通过恢复第二次提交来摆脱第二行 然而 我在这个简单的实验中收到了合
  • git count 暂存索引中的文件数

    我试图弄清楚如何轻松地计算未提交索引中的文件数 我试过了 git status grep wc l 但有几行以 不代表已更改的文件 有人有更好的吗 认为必须有一个标志git status去做这个 即使像 GitX 这样的工具也不容易让您选择
  • 行结尾:Git merge 创建重复项而不会发生冲突

    Git 自动合并问题 当在两个不同的分支文件中提交相同的代码时 其中一个分支代码在开始时具有额外的 CRLF LF 合并时 它会自动合并文件 并会创建重复项 而不会产生任何冲突 请尽早指教 下图显示了文本文件中所有可能的符号 注意 分支 A
  • git-review -> 将草稿提升为代码审查

    我创建了一个 Gerrit 草稿 git review D 完成草稿后 如何创建代码审查以便最终将其合并到主版本中 如果我只是这样做 git review 我得到这个输出 git review remote remote Processin
  • 我可以使用 GIT_CONFIG 环境变量来为所有 git 命令使用配置文件吗

    我一直在尝试使用 git 配置文件export GIT CONFIG
  • 在 Git 上保存 Excel 文件的版本,以便稍后手动协调差异

    我将用一个月的时间更新Excel文件 这些文件的语言不是英语 我想我也可以使用 Git 来管理我想做的事情 情况 初始提交 我有一个用其他语言编写的 Excel 文件 我必须执行一些工作并用其中的数据填充 Excel 文件 My plan
  • 变基中的传入和当前

    有一个与此类似的问题 但其范围太笼统 而且响应过于复杂 我的问题是非常准时 当从我的分行MyBranch并进行像这样的变基git rebase master并发生冲突 这是传入的变化 哪个是目前的变化 请不要关闭这个问题 将其链接到之前所说
  • 如何在 Git 中创建多个阶段

    使用 Git 时 可以按照以下方式暂存文件https githowto com staging changes https githowto com staging changes 所以通常 git add file1 git commit
  • 执行“挤压和合并”后可能出现问题?

    I used Squash and Merge用于合并dev分支到main因为我不想要来自的一些提交消息dev出现在的分支main但现在我发现main比 dev 提前 1 次提交 并且该图显示 两者之间没有联系dev and main 这是
  • xcode 中的 Git(无分支)

    在我的 ios 项目中 我使用 git 作为 scm Xcode 存储库列表包括 至少在 Xcode 中 无分支 的内容 前段时间我可能检查了以前的提交 但没有创建分支 从那时起我已经做出了大约 40 次提交 现在我想从我的下一个最后提交分

随机推荐

  • 查找 PHP 服务器的可用端口

    PHP 5 4 带有一个用于开发目的的内置服务器 这是我已经等待了几个月的事情 因为到目前为止 我不得不编写一个 PHP 脚本来侦听传入的连接并处理它们 因为我不想惹麻烦 以及安装实际服务器的开销 我要担心的主要事情是 如何分配端口 在我的
  • 如何将现有的nodejs服务器应用程序连接到Azure SQL数据库

    任何人都可以请建议 我有一个在 azure 上运行的现有 Nodejs 服务器 在 Linux 上运行节点 10 14 项目代码位于 github 上 当我推送更改时 它们会自动推送到 azure 我已经通过Azure门户设置了数据库服务器
  • 为什么 Facebook 淹没了我的网站?

    每个半小时我都会收到大量的请求http www facebook com externalhit uatext php http www facebook com externalhit uatext php 我知道这些请求意味着什么 但这
  • Django url 调试器

    我正在开发一个 Django 应用程序 随着时间的推移 URL 不断增长 我现在有很多这样的视图 由于我做了一些改变 一个视图开始出现故障 当我尝试获取时http example com foo edit profile http exam
  • 将 C 字符串转换为二进制表示形式

    在 ANSI C 中 我们如何将字符串转换为二进制字节数组 所有的谷歌搜索和搜索都给了我 C 和其他而不是 C 的答案 我的一个想法是将字符串转换为 ASCII 然后将每个 ASCII 值转换为其二进制 呃 我知道这是最愚蠢的想法 但我不确
  • React-Native-Video -> 如何保存视频

    我目前正在使用react native video 并通过该包播放HLS 视频流 有人知道如何将视频下载到手机图库吗 查看该包没有任何方法 并且想知道是否还有另一个包可以使用 Thanks 在我的应用程序中 我使用以下命令下载视频RNFS
  • Azure 中的 Web 应用服务每天重新启动多次,日志中没有错误

    我正在 Azure Web 应用服务中运行 ASP Net Web API 2 应用程序 Web 服务每天会重新启动多次 5 6 次 而不会提前发出任何通知或错误消息 我扩展到两个实例 始终不依赖于负载 并且两个实例同时重新启动 我确实设置
  • Sql 服务器表分区 - 我可以跨服务器分配表吗?

    我读过很多网站 指南等 另请注意 我无法测试我所要求的内容 因为没有两台计算机 表分区简单地意味着表被逻辑划分 这样特定范围仅由特定分区处理 从而减少负载并允许并行性 提到分区位于不同的硬盘上 但从未提到分区位于不同的计算机上 那可能吗 例
  • 每行具有不同标准差的 Numpy 数组

    我想要一个NxM矩阵 其中每行中的数字是从不同正态分布生成的随机样本 相同mean但标准差不同 以下代码有效 import numpy as np mean 0 0 same mean stds 1 0 2 0 3 0 different
  • Kendo UI 中单击自定义工具栏时如何调用函数?

    我想创建一个自定义工具栏 这是我的代码 toolbar text Go to Add User Page className k grid custom imageClass k add function createUser alert
  • 不包括程序集版本的 WCF 扩展

    正如所讨论的here http marcgravell blogspot com 2009 11 controlling wcf protobuf net at html 我正在尝试添加 WCF 端点扩展 我已经让它工作了 但我需要包含完整
  • 哪个是支持代码重新加载的简约 python wsgi 开发服务器? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 据我所知 wsgiref 无需重新加载代码 CherryPy 不仅仅是服务器 mod wsgi 所有 apache 开销 Paste https
  • 在 StreamBuilder 中使用选择器(提供程序)时重建不必要的小部件

    我正在使用一个Selector当 Bloc 中的数据发生更改时会重建 这很好 但是当数据发生变化时 它会重新加载整个树 而不仅仅是选择器内的构建器 就我而言 选择器位于 StreamBuilder 内 我需要这个 因为流已连接到 API 因
  • Pandas DataFrame 按两列分组并获取第一个和最后一个

    我有一个DataFrame喜欢跟随 df pd DataFrame id 1 1 2 3 2 value a b a a c Time 6 Nov 2012 23 59 59 0600 6 Nov 2012 00 00 05 0600 7
  • zend框架丢失会话

    我正在尝试在我的 Zend 框架应用程序中实现 Flash 上传器 但我在会话中遇到问题 Flash 不发送任何 cookie 标头 这就是会话丢失的原因 我试图将 sessionId 作为 post 参数发送 并在我的引导文件中添加了 s
  • 从 File.ReadAllBytes (byte[]) 中删除字节顺序标记

    我有一个 HTTPHandler 它正在读取一组 CSS 文件并将它们组合起来 然后对它们进行 GZipping 但是 某些 CSS 文件包含字节顺序标记 由于 TFS 2005 自动合并中的错误 并且在 FireFox 中 BOM 被作为
  • 如何使用点绘制 pandas 数据框的两列

    我有一个 pandas 数据框 想要绘制一列中的值与另一列中的值 幸运的是 有plot与数据帧关联的方法似乎可以满足我的需要 df plot x col name 1 y col name 2 不幸的是 它看起来像在情节风格中 列出here
  • 如何在 Pyspark 中添加带有 min 和 max 函数的新列并按数据分组?

    PySpark 数据框 adobeDF 将新列添加到数据框 from pyspark sql window import Window from pyspark sql import functions as f adobeDF new a
  • DrRacket 中的宏步进器

    在链接上http www ccs neu edu home ryanc macro stepper tutorial html http www ccs neu edu home ryanc macro stepper tutorial h
  • git 删除文件最旧的修订版本

    我有一个 33 MB 的大文件 我想永久删除该文件的最旧版本 因此我只保留最新的 X 版本 怎么做 我的裸存储库因此变得巨大 我已尝试以下操作 但它完全删除了该文件 git filter branch index filter git rm