gpt4 book ai didi

git - 我如何摆脱我的 git repo 中的大包文件?

转载 作者:行者123 更新时间:2023-12-05 08:12:05 24 4
gpt4 key购买 nike

我有一个只有一个分支的 git 存储库,一位同事在其中推送了一些大文件。在我删除大文件后,repo 是 ~200MB,但是 git 文件夹仍然是 1.3GB,因为一个巨大的 .git/pack 文件夹。

到目前为止我尝试了什么(基于 SO 的其他答案,但似乎对我没有帮助):

  • BFG 工具 -> 我去掉了大文件,但打包文件夹仍然有 1.3GB
  • git filter-branch --index-filter 'git rm -r --cached --ignore-unmatch BIG_FILES' --prune-empty -> 我成功重写了历史,大文件github网站上的历史提交中不再提及
  • git repack -a -d -f --depth=250 --window=250 -> 不会使包变小
  • git reflog expire --expire=now --all && git gc --prune=now --aggressive -> 作为 git repack 的替代品,但没有更好的效果
  • git for-each-ref --format='delete %(refname)' refs/original | git update-ref --stdin -> 无济于事
  • 我在本地克隆 repo 的 git clone file://技巧,应该会删除虚假引用 -> 尽管如此,包还是 1.3GB

下一步是什么?

最佳答案

请仔细阅读我的内容!

yes I know this topic is 4 years ago but I just read it today(17 Dec 2020)

这是我自己做的,对我有用,但对你可能有用,也可能不可用

给我

“历史”不是问题,但我的问题是“包”文件它的大小超过了项目文件(我只想保持我的 vim 配置为 .7zip 格式.7zip 文件只有 40 MB,但历史文件有 500 MB当我尝试将它 pull 回新的设置机器时,这对我来说是个大问题在我糟糕的慢速互联网连接上)所以这就是为什么 SIZE 对我来说很重要


所以如果你这样做,你将失去你对你的项目所做的所有历史


我所做的是:

  1. 打开终端(我使用的是 manjaro 20)cd to-my-project-folder 然后 rm -rf .git

  2. 运行 git init(我用这个 repo 有 3 个分支 master , desktop , laptop)现在我运行 git checkout -b main 来创建新的分支调用 main 并做一些编辑文件 README.md 保存文件然后输入 git status 你会看到一些未跟踪的文件现在添加它们 git add 。 添加所有内容然后提交更改git commit -m"your message here" 然后运行 ​​ git push -u origin main只需推送到我们创建的新分支即可。

  3. 转到你的 git 仓库,然后将默认分支(在我的例子中是 master)更改为我刚刚创建的新分支然后我删除所有分支(master,desktop,laptop)因为我现在使用 main 作为我的默认分支

  4. 如果我想返回 master 分支,请返回终端运行 git checkout -b master我做了一些编辑 README.md 文件,然后 git add . 然后是 git commit -m"push message here"跟着 git push -u origin master 所以现在我有一个分支 master

  5. 回到浏览器我只是从分支 main 切换到 master 作为默认分支

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

关于git - 我如何摆脱我的 git repo 中的大包文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38509127/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com