如何在我的git回购中删除一个大文件包?

如何在我的git回购中删除一个大文件包?,git,github,Git,Github,我有一个git回购,只有一个分支,一个同事在那里推了一些大文件。在我删除大文件之后,repo大约是200MB,但是git文件夹仍然是1.3GB,因为有一个巨大的.git/pack文件夹 到目前为止我所尝试的(基于迄今为止的其他答案,但似乎对我没有帮助): BFG工具->我去掉了大文件,但包文件夹仍然是1.3GB git筛选器分支--索引筛选器'git rm-r--缓存--忽略不匹配的大_文件'--删除空的->我成功地重写了历史记录,github网站上的历史提交中不再提到大文件 git repa

我有一个git回购,只有一个分支,一个同事在那里推了一些大文件。在我删除大文件之后,repo大约是200MB,但是git文件夹仍然是1.3GB,因为有一个巨大的.git/pack文件夹

到目前为止我所尝试的(基于迄今为止的其他答案,但似乎对我没有帮助):

  • 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 这对我来说是一个大问题,当我试图把它拉回到新的设置机器 这就是为什么尺寸对我来说是个问题


因此,如果您这样做,您将失去您在项目中完成的所有历史记录
我所做的是:

  • 打开终端(我正在使用manjaro 20)
    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回购,然后将默认分支(在我的例子中是master)更改为 我刚刚创建的新分支,然后删除所有分支(主分支、台式分支、笔记本) 因为我现在使用main作为默认分支

  • 返回终端如果我想返回主分支,我运行
    git checkout-b master
    然后我编辑README.md文件,然后添加
    git。
    接着是
    git commit-m“push message here”
    接下来是
    git-push-u源代码母版
    ,所以现在我有了一个分支母版

  • 回到浏览器,我只是从主分支切换到主分支作为默认分支

  • 这就是我所做的一切,这对我来说很有用,但正如我所说,你将失去所有的历史

    请仔细阅读我! 是的,我知道这是4年前的话题,但我今天才读到(2020年12月17日)

    我这样做是为了我自己,这对我来说是有效的,但对你来说可能有效,也可能无效 对我来说 “历史记录”不是问题,但我的问题是“打包”文件 它在项目文件上的大小过大 (我只想保持我的vim配置为.7zip格式 .7zip文件只有40MB,但历史记录文件是500MB 这对我来说是一个大问题,当我试图把它拉回到新的设置机器 这就是为什么尺寸对我来说是个问题


    因此,如果您这样做,您将失去您在项目中完成的所有历史记录
    我所做的是:

  • 打开终端(我正在使用manjaro 20)
    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回购,然后将默认分支(在我的例子中是master)更改为 我刚刚创建的新分支,然后删除所有分支(主分支、台式分支、笔记本) 因为我现在使用main作为默认分支

  • 返回终端如果我想返回主分支,我运行
    git checkout-b master
    然后我编辑README.md文件,然后添加
    git。
    接着是
    git commit-m“push message here”
    接着