美文网首页
git项目大小优化笔记,删除历史提交中的大文件

git项目大小优化笔记,删除历史提交中的大文件

作者: Joyner2018 | 来源:发表于2023-05-15 11:05 被阅读0次

    1.对历史提交文件大小排序

    git rev-list --objects --all
    | git cat-file --batch-check='%(objecttype) %(objectname) %(objectsize) %(rest)'
    | sed -n 's/^blob //p'
    | sort --numeric-sort --key=2
    | cut -c 1-12,41-
    | $(command -v gnumfmt || echo numfmt) --field=2 --to=iec-i --suffix=B --padding=7 --round=nearest

    2.查看文件是否存在

    3.移除commit中某个文件的引用

    git filter-branch --force --prune-empty --index-filter 'git rm -rf --cached --ignore-unmatch 文件路径/文件名' --tag-name-filter cat -- --all

    git filter-branch --force --prune-empty --index-filter 'git rm -rf --cached --ignore-unmatch report/app/public/pdf/.' --tag-name-filter cat -- --all
    git filter-branch --force --prune-empty --index-filter 'git rm -rf --cached --ignore-unmatch report/app/public/font/.' --tag-name-filter cat -- --all

    4.删除指向旧提交的指针
    rm -rf .git/refs/original/

    5.让历史记录全部过期
    git reflog expire --expire=now --all

    6.重新打包
    git repack -A -d

    7.对仓库进行gc操作
    git gc --aggressive --prune=now

    8.强制推送到远程分支
    git push --force

    9.以为这样就完了?
    全部以clone的方式重新拉取代码再做修改提交。

    相关文章

      网友评论

          本文标题:git项目大小优化笔记,删除历史提交中的大文件

          本文链接:https://www.haomeiwen.com/subject/pqmmsdtx.html