为什么我的 .git 文件很大?

2024-04-29

我不小心在 git 目录中添加并提交了一些非常大(100MB+)的 PSD 文件。当这些文件位于目录中时,我对它们进行了一系列编辑,但后来意识到它们不应该在那里,并将它们从目录中删除。

然后我跑了:

git add --all && git commit -m "Removed large psds"

现在,我的目录中的文件加起来不到 12 MB,但 .git 文件本身除外,它的大小超过 700MB。

这里发生了什么?它是否保留已删除的 .PSD 文件的旧版本?这是否意味着 git 永远不会清除删除文件所获得的空间?如何让它完全忘记这些文件,以便我可以缩小 .git 文件大小?


您的 .git 文件夹非常大,因为 PSD 文件仍然存在于存储库中。要删除它们,您需要使用修改历史记录git filter-branch. Here https://www.kernel.org/pub/software/scm/git/docs/git-filter-branch.html解释如何使用该命令。之后,您将需要清理存储库。

我创建了一个脚本来帮助完成这项工作。如果您想使用它,可以从以下位置下载github https://github.com/williammizuta/git-delete。欢迎任何评论。

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

为什么我的 .git 文件很大? 的相关文章

  • Git 提交从 Windows 上的守护程序返回错误 docker/error 响应

    我正在为我的 Laravel 应用程序 BE 运行 docker 我对 readmeme md 文件进行了简单的更新 并尝试将此文件提交并推送到 git 当我尝试提交时 这就是我得到的 gt git c user useConfigOnly
  • 获取签出修订版的 git 标签?

    我正在做 git tag current tag example to test task git checkout tag example to test task HEAD is now at 75fdde3 commit commen
  • 我有*很多*源文件要添加到 git 存储库,如何使其快速

    我在看here https git scm com docs git fast import寻找更快地将批量文件导入 git 存储库的灵感 但不确定是不是这样 基本上情况是 我有超过 1 亿个文件想要提交到 git 存储库 我已将它们分解为
  • 如何为新的 eclipse (neon) java 项目初始化 git

    我安装了 eclipse Neon 的新副本 并在一个新的闪亮工作区中创建了一个新的 gradle java 项目 将 git 添加到聚会中的最佳实践是什么 我读到在项目目录中初始化 git 是真是个坏主意 https stackoverf
  • Egit 无法检测到本机 Git 的安装路径“gitPrefix”

    如何解决这个问题 警告 EGit 无法检测到本机 Git 的安装路径 gitPrefix 因此 Egit 无法尊重系统级别 Git 设置可以在本机 Git 安装目录下的 gitPrefix etc gitconfig 中配置 正如我在 eg
  • 如何使用它们的更改来解决选择冲突?

    My git cherry pick FOO产生了冲突 我可以检查冲突的文件并删除之间的行 lt lt lt lt lt lt lt and 以及冲突标记本身 但我希望有一种更简单的方法 我觉得svn等同于选择theirs conflict
  • git 提交消息的 vim 语法高亮显示 - 自定义 commentchar

    如上所述在这个答案中 https stackoverflow com a 14931661 835945 从 Git 1 8 2 开始你可以使用core commentchar配置值将提交消息注释更改为默认值以外的其他内容 哈希标记或哈希符
  • Git 拉回 master 中的提交?

    一位同事 我们称之为亚伦 被指派翻新网站的一部分作为长期项目 他创建了一个新的 Git 分支 名为aaron 他所有的改变都是在这个分支上进行的 当他工作时 我继续维护整个网站 将我的更改提交给master 最终 Aaron 将他的分支合并
  • git:如何查明某个分支是否有拉取请求?

    我在 git 分支上 有没有办法查看该分支是否有拉取请求 在这种特殊情况下 Atlassian Stash 用于管理拉取请求 当然我可以使用Stash的Web界面来搜索拉取请求 但我也可以仅使用 git 命令行工具从脚本执行此操作吗 Cor
  • git-svn --忽略路径

    我现在在 git svn 的 ignore paths 选项上挣扎了几个小时 试图从大型存储库中仅获取某些标签 我想在 dev 处开始获取 看起来像 gt svn ls http 192 168 0 2 svn repo corporati
  • 有没有办法列出Git中未修改的文件?

    我从另一个来源以 tarball 的形式获取了一些更改 我想知道哪些文件没有更改 目标是 Git 克隆 因此可以轻松查看新增内容和更改内容 有人知道如何获取未更改内容的列表 不包括未跟踪的内容 吗 编辑 换句话说 我希望利用 Git 来查找
  • 判断 Git 提交是否是合并/恢复提交

    我正在编写一个脚本 需要检查特定提交是否是合并 恢复提交 我想知道是否有 git 技巧 到目前为止我想到的 我绝对不想依赖这里的提交消息 是检查HASH 2看看我是否没有收到错误 是否有更好的方法 判断某个东西是否是合并很容易 这是不止一位
  • 在两个单独的分支或存储库中管理项目后端和前端?

    我启动了一个移动应用程序项目 该项目将具有服务器端和应用程序本身 所以 在master分支我创建了2个项目myapp server and myapp然后我创建了另外 2 个分支backend and frontend我只想将与它们相对应的
  • 如何重命名 GitHub 网站上的目录/文件夹?

    我在 GitHub 网站上找到了一种方法rename https github com blog 1436 moving and renaming files on github一个文件并成功完成 我也找到了一种方法rename https
  • Git - 推送到远程存储库中的远程跟踪分支

    当简单地做git push到远程存储库 其master分支得到更新 对于非裸存储库来说 这是不希望出现的情况 最近的 Git 版本显示的警告消息清楚地表明了这一点 我希望能够推送到远程存储库 并拥有其之一远程追踪分支进行更新 稍后 当我登录
  • Gerrit 安装后无法克隆所有项目存储库

    我有一个新设置的 Gerrit 实例 目前只有两个存储库 所有项目 binutils 测试 尝试克隆所有项目时 我收到以下错误 git clone ssh user hostname 29418 All Projects Initializ
  • 如何修复树与树之间的 Git 错误断开链接?

    我的事务被中断 当我再次尝试时 我遇到了空或损坏的对象错误 在另一个问题之后 我删除了所有空文件 当我运行时 git fsck full 我收到这个错误 Checking object directories 100 256 256 don
  • 使用 TFS 个人访问令牌克隆 Git 存储库

    我正在尝试以编程方式克隆 git 存储库 我的 ASP NET MVC 应用程序正在创建并启动一个进程 处理进程的代码工作正常 但是当尝试使用本地 TFS PAT 克隆 git 存储库时 身份验证失败 我无法使用 NTLM 或要求用户输入凭
  • git 预提交钩子格式代码 - Intellij/Android Studio

    本要点展示了如何在预提交时使用 Eclipse 格式化程序自动格式化 Java 代码 Source https gist github com ktoso 708972 https gist github com ktoso 708972
  • 相当于“svn update -r”的 git 是什么?

    我是最近的 git 转换者 能够使用 git svn 将我的分支保留在本地而不干扰 svn 服务器真是太棒了 最新版本的代码中存在一个错误 我想确定一个它起作用的时间 以便我可以使用 git bisect 我找不到正确的命令来及时返回 谢谢

随机推荐

  • F# 是卡牌游戏 AI 的好语言吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 消息 discord.py 中的可点击链接

    我希望我的机器人将消息发送到聊天中 如下所示 await ctx send This country is not supported you can ask me to add it here 但是为了使 这里 成为可点击的链接 在 HT
  • 在函数中使用node-mysql

    我对 Nodejs 很陌生 有一个问题 尝试创建一个函数 该函数将调用我在表中提到其 ID 的任何字段的值 function getUserInfo userID dynamicField var query connection quer
  • 破译vtable转储

    我正在 玩 C 中的虚拟继承 我想知道类对象是如何布局的 我有这三个课程 class A private int a public A this gt a 47 virtual void setInt int x this gt a x v
  • 我怎样才能找出MySQL中的默认字符集/排序规则[重复]

    这个问题在这里已经有答案了 我在 Ubuntu 18 04 上使用 MySQL 和 MySQL Workbench 8 0 当我创建字符串类型的列时 我将字符集 排序规则保留为默认值 在 MySQL Workbench 中 它只是告诉我就是
  • 在 sails.js 中跟踪用户在线/离线状态

    我必须在我的 Web 应用程序中使用 sails js 中的 websockets 找出用户状态 即用户是否在线 离线 请帮我 多谢 从 Sails v0 9 8 开始 您可以使用onConnect and onDisconnect功能于c
  • CSS 的用户选择和可访问性

    如果我使用以下内容 webkit touch callout none webkit user select none khtml user select none moz user select none ms user select n
  • 如何有效地对一个数组中某个值在另一个数组中的位置出现的次数求和

    我正在寻找一种有效的 for 循环 避免解决方案来解决我遇到的数组相关问题 我想使用一个巨大的一维数组 A gt size 250 000 用于一维索引的 0 到 40 之间的值 以及用于第二维索引的具有 0 到 9995 之间的值的相同大
  • 从 X.509 证书中提取 PEM 公钥

    我已经创建了一个包含公钥 DER 文件的证书 但我现在需要 PEM 格式的公钥用于不同的平台 目的是使用相同的公钥 我使用创建它iOS 中的 RSA 加密并使用 PHP 解密 http jslim net blog 2013 01 05 r
  • Android - NumberPicker 滚动/快速滑动更快

    如何使数字选择器滚动 快速滑动更快 目前从00分钟到59分钟需要付出很大的努力 我尝试过一些例子Android 中 Viewpager 控制器速度减慢 https stackoverflow com questions 8155257 sl
  • Spark,执行器加载/查询数据 - 性能非常低

    我的用例如下 写作RDD归档依据saveAsTable 对于 ORC 文件也是如此 每次保存都会创建新文件 因此1000 000著作给我1000 000ORC 文件 我知道每个 RDD 都会创建新的 ORC 文件 这是很自然的 但是 我不知
  • 定位区域中的点

    我有一个数据框 其中两列是点的坐标 如果该点位于特定位置 我需要用特定值填充一列 全无 该位置和标签存储在另一个 df 中 解释起来并不容易 但我希望通过一个例子就可以清楚地理解 DF1 latitude longitude LABEL 0
  • 无法创建新的远程会话。阿皮姆

    public class StartFirstJobTest AppiumDriver driver BeforeTest public void setUp throws Exception DesiredCapabilities cap
  • 将 openCV 矩阵转换为向量

    看起来很容易 毕竟我们知道 std 或 openCV 向量可以轻松转换为矩阵 如下所示 vector
  • BlazeDS 与 GraniteDS [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 pandas 中创建具有动态名称的新数据框并添加新列

    我有一个数据框 df df pd DataFrame A a 1 a B a np nan c ID 1 2 2 t pd tslib Timestamp now pd tslib Timestamp now np nan 添加了新列 df
  • 将接口转换为结构体

    type SipField interface Info id name defaultValue string length int type Field string func f Field Get string return str
  • gzipstream.copyto .net 3.5 中的替代且简单的方法

    你好 在 net 4的这段代码中我使用了gzipstream的copyto方法 System IO MemoryStream ms new System IO MemoryStream byteArray GZipStream Decomp
  • 创建 XML 文档的最佳 .net 方法

    我试图找出编写 XML 文档的最佳方法 下面是我尝试根据从 ERP 系统中提取的数据创建的简单示例 我读过有关 XMLWriter 的内容 但我想看看是否还有其他更好的方法 任何建议将不胜感激 XML 示例
  • 为什么我的 .git 文件很大?

    我不小心在 git 目录中添加并提交了一些非常大 100MB 的 PSD 文件 当这些文件位于目录中时 我对它们进行了一系列编辑 但后来意识到它们不应该在那里 并将它们从目录中删除 然后我跑了 git add all git commit