永久清理git中的历史大文件
本文最后更新于 2040 天前,其中的信息可能已经有所发展或是发生改变。

有写老的git仓库,因为当年的无知,不会用.gitignore,残留下了像debugobj等目录的文件,非常占空间,然后就需要对历史里的各种垃圾进行清理了

第一步当然是打开git bash(linux可以无视)

这里要确定某种文件或某个路径,是你要永久清理掉的

如果是目录,执行:

git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch obj/*' --prune-empty --tag-name-filter cat -- --all

如果是某个拓展名的文件,比如lod

git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch *.lod' --prune-empty --tag-name-filter cat -- --all

然后依次执行下面的东西,清理空间就好了:

rm -rf .git/refs/original/
git reflog expire --expire=now --all
git gc --prune=now
git gc --aggressive --prune=now

最后强制覆盖云端推送上去,命令行推送带上--force --all参数就可以了,TortoiseGit参考下面:

git仓库瘦身完成辣

评论

  1. 6 年前
    2019-6-15 19:20:21
    Google Chrome 76.0.3809.25 Google Chrome 76.0.3809.25 Windows 10 x64 Edition Windows 10 x64 Edition

    在工作环境上用强推会被同事打死(滑稽

    • 博主
      Sonic853
      6 年前
      2019-6-15 21:56:20
      Opera 4.0 Opera 4.0 Android 8.0.0 Android 8.0.0

      当年公司某在github的仓库有半个多g,然后我就去清理成30M了,第二天就有个同事说推不上去(

  2. 博主
    2 年前
    2022-12-05 17:17:45
    Firefox 107.0 Firefox 107.0 Windows 10 x64 Edition Windows 10 x64 Edition

    备注:记得同时删tag

    git tag -d $(git tag -l)      //删除本地tag
    git fetch                 //拉取远程tag
    git push origin --delete $(git tag -l)        //删除远程tag
    git tag -d $(git tag -l)      //删除本地tag
    

发送评论 编辑评论

|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇