如何从 git 历史记录中删除“太大”文件?

2023-11-21

我将一个 212MB 的文件添加到我的文件夹中并提交并尝试推送它。 Git 告诉我文件太大所以我无法推送它。我删除了该文件,但当我尝试推送代码时它仍然显示。

我的实际步骤是:

  1. I did git add .

  2. Then git commit -m "New css"

  3. Then git push origin development

  4. 然后运行上面的命令花了很长时间。最后显示“path/to/file/file.mp4 为 212MB,太大。推送失败”。

  5. 然后我手动删除了该文件。

  6. 再次尝试推送,同样的问题。

其他 stackoverflow 答案告诉我要使用git filter-branch --tree-filter 'rm -rf path/to/your/file' HEAD

我只是想理解这意味着什么。这会影响我的整个存储库还是仅影响上述文件?如果我已经手动删除了该文件,会发生什么情况?所以该文件路径不存在。

例如,由于我尝试推送到开发分支,所以我做了git push origin development。这失败了,所以假设我尝试删除的文件名为Testing.mp4,代码应该是:

git filter-branch --tree-filter 'rm -rf public/uploads/videos/testing.mp4' HEAD

我对吗?再说一次,这只会删除视频而不会删除其他内容?


从文件系统中删除文件并不一定意味着将其从 git 中删除,如果它之前已添加到索引中(git add path/to/file),但只记录一次删除操作。

根据您之前所做的操作,git 可能会尝试按顺序推送您的各种操作:首先添加文件(由于文件大小而失败),然后删除它。

要真正停止跟踪此文件,您可以尝试将其从索引中删除:git rm --cached path/to/file

以后记得永远git rm有问题的文件而不是简单地删除它,git rm将删除该文件并同时将其从索引中删除。

manojlds 谎言的一个很好的解释here

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

如何从 git 历史记录中删除“太大”文件? 的相关文章

  • 有没有办法列出Git中未修改的文件?

    我从另一个来源以 tarball 的形式获取了一些更改 我想知道哪些文件没有更改 目标是 Git 克隆 因此可以轻松查看新增内容和更改内容 有人知道如何获取未更改内容的列表 不包括未跟踪的内容 吗 编辑 换句话说 我希望利用 Git 来查找
  • 配置 github 以使用其他文件作为 README

    由于 Eclipse 和 EGit 组织文件和目录的方式不同 我的 README md 文件并不位于 git 存储库的根目录中 而是位于更深的一个文件夹中 我怎样才能告诉github显示some folder README md作为项目的自
  • 使用 GIT 自动增加 AssemblyFileVersion

    好吧 我知道这可能不是传统的 但除此之外 我使用 AssemblyFileVersion 作为我的 构建名称 字符串 它的格式如下 File Version information for an assembly consists of t
  • 如何预览 Git 中的隐藏内容?

    我想检查一个存储 并找出如果我将其应用于当前状态的工作树 它会发生什么变化 我知道我可以对存储进行 git diff 但这向我展示了工作树和存储之间的所有差异 而我只是想知道存储应用将改变什么 git stash show将向您显示最近存储
  • 我可以通过链接分享我的私人 GitHub 存储库吗?

    我在 GitHub 上的私人存储库中有一个 Java 应用程序 我想与没有帐户的人共享它 我在网站上没有找到任何与此相关的选项 有没有办法做到这一点 协作者只能是 GitHub 用户 无法在非 Github 用户之间共享私有存储库 您需要
  • 如何重命名 GitHub 网站上的目录/文件夹?

    我在 GitHub 网站上找到了一种方法rename https github com blog 1436 moving and renaming files on github一个文件并成功完成 我也找到了一种方法rename https
  • Git:如何使外部存储库和嵌入式存储库作为通用/独立存储库工作?

    我有一个大项目 比方说A repo 其中有一个子文件夹来自B repo 当我提交时 我会遇到如下警告A repo warning adding embedded git repository extractor annotator serv
  • GitHub API:标记提交所属(与 git describe --tag 并行)

    我正在使用 GitHub API 进行实验octokit https github com octokit octokit rb红宝石 我的目标是能够提取提交 SHA 所属的 标签 现在我可以使用命令行轻松地执行此操作 gt git des
  • 有没有办法缓存 https 凭据以推送提交?

    我最近转而将我的存储库同步到 GitHub 上的 https 由于防火墙问题 并且每次都要求输入密码 有没有办法缓存凭据 而不是每次都进行身份验证git push 自 Git 1 7 9 2012 年发布 以来 Git 中有一个巧妙的机制可
  • 通过 GitHub、Sonatype Maven 存储库提供 JavaDocs [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 尽管 Github 为 Java 开源项目提供了一个不错的家园 但与更成熟的开源托管场所相比 仍然缺少一些东西 到目前为止 我发现 S
  • git 可以与 Xcode 集成吗?

    有没有办法将 git 存储库与 Xcode 内置的 SCM 功能一起使用 Xcode 4 原生支持 git WWDC 2010 上的开发者工具国情咨文演讲 在这里了解更多 Xcode 4 中的新增功能 http developer appl
  • DVCS命令的统一

    当处理多个 开源 项目时 多个版本控制系统开始出现问题 虽然它们共享共同的操作 但我经常在输入时犯错误hg add反而git add 我记得前段时间看到过一个项目 通过提供基本命令以统一的方式访问不同的源代码控制软件提交 ci add等在外
  • Git:如何变基到特定提交?

    我想变基到特定的提交 而不是另一个分支的 HEAD A B C master D topic to A B C master D topic 代替 A B C master D topic 我怎样才能做到这一点 您可以通过在您喜欢的提交上创
  • 忽略 git 中的本地配置文件

    Rails 应用程序中有一些本地文件 属于我们存储库的一部分 我希望 git 忽略它们 基本上 我希望 git 忽略我对 config environments 目录和 config application rb 文件中的任何内容所做的所有
  • 推送时发生 Git 错误 - update_ref 失败

    当我尝试推送本地提交时遇到问题 这可能是在 Android Studio 崩溃时发生的 这是错误 update ref 引用 refs remotes origin master 失败 无法锁定 ref refs remotes origi
  • 分支明显不同,但提交历史是相同的

    git status告诉我我的分支和我在另一个存储库上开始的分支已经分歧 On branch master Your branch and origin master have diverged and have 13 and 13 dif
  • Git:显示分支之间的差异,忽略合并的提交

    我的存储库历史记录看起来像这样 x y z branch a b c d e master 我想获得 branch 完整历史记录的单个差异 即 像 git diff 输出 我不想要像 git log p 产生的一大堆差异 而不包括任何从 m
  • 在 github 上的 fork 中跟踪上游的最佳实践

    摘要 对于要维护一组本地更改的上游存储库 处理长期运行跟踪的最佳实践是什么 我想让 github 上的 fork 与上游保持同步 但仍然允许清晰跟踪 fork 特有的更改 对于本次讨论 假设upstream指向主项目存储库并且origin指
  • 有没有办法让 git flow 显示它在幕后执行的命令?

    有什么方法可以让 git flow 提前告诉我当我执行 flow 命令时它将执行的确切 git 命令吗 或者告诉我它是东吗 我只能看到输出和摘要吗 你可以使用Git的GIT TRACE 环境变量 http git scm com docs
  • Haskell Stack 从 github 安装包依赖项

    是否可以使用 Haskell 堆栈从 github 安装软件包的版本 例如在一个 cabal or a stack yaml文件 如何在 git repo branch revision 上指向依赖项 对于堆栈 The 的文档stack y

随机推荐

  • python:我什么时候可以打开生成器的包装? [复制]

    这个问题在这里已经有答案了 它在幕后是如何工作的 我不明白以下错误的原因 gt gt gt def f yield 1 2 yield 3 4 gt gt gt f File
  • 将 SQL CE 4 部署到 IIS 7 - 需要特殊权限吗?

    我有一个使用新 SQL CE 4 CTP 的 ASP NET 4 站点 该站点在本地 Win7 上的 IIS 7 5 运行良好 在 Server 2003 IIS 6 中运行良好 部署到 Server 2008 上的 IIS 7 时失败 我
  • 什么是 |和 << 是什么意思?

    抱歉 如果这是一个常见问题 但我不知道它叫什么 所以我在搜索时遇到了困难 这是如何运作的 view autoresizingMask UIViewAutoresizingFlexibleWidth UIViewAutoresizingFle
  • asp.net web api 2 CORS和身份验证授权配置

    我创建了一个具有个人帐户安全性的 asp net web api 2 服务 我尝试按照以下示例从 AngularJs 中调用它 http www codeproject com Articles 742532 Using Web API I
  • 关于C#中不明确调用的问题

    我有一个问题 虽然不是真正的问题 但让我有点好奇 我有一个类 其中有两种方法 一种是静态方法 另一种是实例方法 这些方法具有相同的名称 public class BlockHeader public static BlockHeader P
  • 使用docker进行谷歌云数据流依赖

    我对使用 Google Cloud Dataflow 并行处理视频感兴趣 我的工作同时使用 OpenCV 和张量流 是否可以只在 docker 实例内运行工作程序 而不是按照所述从源安装所有依赖项 https cloud google co
  • 在 PHP 中将新的键/值对添加到 JSON 中

    我的 MySQL 数据库有一个结果 我用 PHP 进行了 json 编码 结果看起来像 id 8488 name Tenby area Area1 id 8489 name Harbour area Area1 id 8490 name M
  • 如何将库添加到 Xamarin 参考列表

    是否有地方可以放置库 dll 以便它们显示在要选择的项目的引用列表中 我知道我可以从我的个人库中手动添加它们 但是我希望能够将它们添加到可用列表中 因此我所需要做的就是选择它们 我认为会有某种方式来表明它们适用于哪个平台 在 编辑引用 下
  • CefSharp - 获取 HTML 元素的值

    如何使用 CefSharp 获取 HTML 元素的值 我知道如何使用这个默认的 WebBrowser 控件 Dim Elem As HtmlElement WebBrowser1 Document GetElementByID id 但我没
  • 使用 gradle 构建库项目时 BuildConfig.DEBUG 始终为 false

    当我在调试模式下运行应用程序时 BuildConfig DEBUG 不起作用 逻辑上设置为 false 我使用 Gradle 来构建 我有一个图书馆项目 我在其中进行此检查 BuildConfig java 在构建调试文件夹中看起来像这样
  • App Store 下载 dSYM 中缺少 UUID dSYM(更多目标应用程序)

    我在使用 iOS 应用程序 XCode 10 3 时遇到以下问题 Crashlytics 说我缺少 dSYM 并提供了缺少的 dSYM UUID 我缺少必需的和可选的 UUID 该应用程序是BitCode应用程序 dSYM是从AppStor
  • Dygraphs 中的散点图?

    如何使用 dygraphs 绘制散点图 数据如下所示 X 轴可能有 5 20 个值 类别 Y 值可能是 x 轴上每个值 1 10 个值 这是我需要的一个例子 这在 Dygraphs 中可能吗 谢谢 迈克尔 您可以设置 strokeWidth
  • 如何在React js中读取xml文件(data.xml)?

    我尝试读取 xml 文件并解析它react xml parser图书馆 var XMLParser require react xml parser var xml new XMLParser parseFromString xml str
  • 2 个列表的交集和并集

    我正在开始学习 prolog 我使用 SWI prolog 我做了一个简单的练习 其中我有 2 个列表 我想计算它们的交集和并集 这是我的代码 效果很好 但我问自己是否有更好的方法 因为我不喜欢使用剪切操作员 intersectionTR
  • AspectJ:切入点中的参数

    我使用 AspectJ 来建议所有具有所选类参数的公共方法 我尝试了以下方法 pointcut permissionCheckMethods Session sess execution public Session args sess 这
  • 无法通过 SSL 使用 Amazon S3 API?

    我正在尝试使用 Amazon S3 API 加密和上传文件 public class AmazonS3 String KmsId my id comes here private TransferManager getTransferMan
  • css 字体粗细值如何工作?

    我不明白字体粗细值 当我将其更改为粗体 正常或 600 时 也会更改字体 但将其更改为 100 至 500 不会改变任何内容 为什么有这些价值观 The font weight从 100 到 900 的值反映了设计不同粗细字体的排版实践 很
  • 如何在JSP或JSTL中获取页面名称?

    我想使用 JSP 或 JSTL 获取当前页面名称 类似于 myPage 我怎样才能实现这个目标 你可以通过HttpServletRequest getServletPath pageContext request servletPath 您
  • 无法使用节点端口方法在集群外部访问集群中部署的 kubernetes 服务

    我正在尝试访问 Kubernetes 集群部署的 Spring Boot 微服务并尝试测试 REST API 我在部署脚本中配置了节点端口方法 但是当我尝试使用 Postman 工具访问时 我只得到 无法得到任何响应 的响应 我配置了服务
  • 如何从 git 历史记录中删除“太大”文件?

    我将一个 212MB 的文件添加到我的文件夹中并提交并尝试推送它 Git 告诉我文件太大所以我无法推送它 我删除了该文件 但当我尝试推送代码时它仍然显示 我的实际步骤是 I did git add Then git commit m New