如何在我的git回购中删除一个大文件包?
我有一个git回购,只有一个分支,一个同事在那里推了一些大文件。在我删除大文件之后,repo大约是200MB,但是git文件夹仍然是1.3GB,因为有一个巨大的.git/pack文件夹 到目前为止我所尝试的(基于迄今为止的其他答案,但似乎对我没有帮助):如何在我的git回购中删除一个大文件包?,git,github,Git,Github,我有一个git回购,只有一个分支,一个同事在那里推了一些大文件。在我删除大文件之后,repo大约是200MB,但是git文件夹仍然是1.3GB,因为有一个巨大的.git/pack文件夹 到目前为止我所尝试的(基于迄今为止的其他答案,但似乎对我没有帮助): BFG工具->我去掉了大文件,但包文件夹仍然是1.3GB git筛选器分支--索引筛选器'git rm-r--缓存--忽略不匹配的大_文件'--删除空的->我成功地重写了历史记录,github网站上的历史提交中不再提到大文件 git repa
- BFG工具->我去掉了大文件,但包文件夹仍然是1.3GB
- git筛选器分支--索引筛选器'git rm-r--缓存--忽略不匹配的大_文件'--删除空的->我成功地重写了历史记录,github网站上的历史提交中不再提到大文件
- git repack-a-d-f--depth=250--window=250->不会使包变小
- git reflog expire--expire=now--all&&git gc--prune=now--aggressive->作为git重新打包的替代方案,但效果并不好
- git for each ref--format='delete%(refname)'refs/original | git update ref--stdin->无效
- git clone文件://trick,其中我本地克隆了repo,并且应该删除虚假的ref->尽管如此,包还是1.3GB
下一步是什么?最简单的方法是下载该分支,删除所有不需要的内容,然后创建另一个存储库。否则,如果您有权访问github,您可以在那里管理文件。但在我看来,最好的解决方案是下载它并创建一个干净的新分支,而不需要任何缓存文件或任何东西。最简单的方法是下载该分支,删除所有不需要的内容并创建另一个存储库。否则,如果您有权访问github,您可以在那里管理文件。但在我看来,最好的解决方案是下载它并创建一个干净的新分支,而不需要任何缓存文件或任何东西。请仔细阅读我的文章! 是的,我知道这是4年前的话题,但我今天才读到(2020年12月17日) 我这样做是为了我自己,这对我来说是有效的,但对你来说可能有效,也可能无效 对我来说 “历史记录”不是问题,但我的问题是“打包”文件 它在项目文件上的大小过大 (我只想保持我的vim配置为.7zip格式 .7zip文件只有40MB,但历史记录文件是500MB 这对我来说是一个大问题,当我试图把它拉回到新的设置机器 这就是为什么尺寸对我来说是个问题
因此,如果您这样做,您将失去您在项目中完成的所有历史记录
我所做的是:
cd到我的项目文件夹
然后rm-rf.git
git init
(我使用的这个repo有三个分支master、台式机、笔记本电脑
)
现在我运行git checkout-bmain
来创建新的分支调用main并对其进行一些编辑
文件README.md
保存文件,然后键入git status
您将看到一些未跟踪的文件
现在添加它们git add
添加所有内容,然后提交更改
git commit-m“您的消息在这里”
然后运行git push-u origin main
只要推到我们已经创建的新分支
git checkout-b master
然后我编辑README.md文件,然后添加git。
接着是git commit-m“push message here”
接下来是git-push-u源代码母版
,所以现在我有了一个分支母版
因此,如果您这样做,您将失去您在项目中完成的所有历史记录
我所做的是:
cd到我的项目文件夹
然后rm-rf.git
git init
(我使用的这个repo有三个分支master、台式机、笔记本电脑
)
现在我运行git checkout-bmain
来创建新的分支调用main并对其进行一些编辑
文件README.md
保存文件,然后键入git status
您将看到一些未跟踪的文件
现在添加它们git add
添加所有内容,然后提交更改
git commit-m“您的消息在这里”
然后运行git push-u origin main
只要推到我们已经创建的新分支
git checkout-b master
然后我编辑README.md文件,然后添加git。
接着是git commit-m“push message here”
接着