美文网首页
git 删除历史commit的文件

git 删除历史commit的文件

作者: space77 | 来源:发表于2022-05-12 10:38 被阅读0次

    一、删除文件

    注意以下方法是永久删除文件操作,包括历史记录。数据无价,谨慎操作
    操作前应保持远程创库和本地仓库一致

    删除一个或多个历史文件

    注意这里的文件地址是相对于当前项目的根目录,如:lib/xxx/xxx.x

    git filter-branch --force --index-filter 'git rm -rf --cached --ignore-unmatch 文件地址1 文件地址2' --prune-empty --tag-name-filter cat -- --all
    

    删除 某个文件夹里的所有文件

    这里的文件夹地址也是相对于当前项目的根目录

    git filter-branch --force --index-filter 'git rm -rf --cached --ignore-unmatch 文件夹地址/*' --prune-empty --tag-name-filter cat -- --all
    

    二、删除缓存记录里

    # windows
    del .git/refs/original/
    
    # Mac or linux
    rm -rf .git/refs/original/
    

    三、处理log

    git reflog expire --expire=now --all
    

    四、gc 压缩

    git gc --aggressive --prune=now
    

    五、检查是否完整

    git fsck --full --unreachable
    

    六、推送到远程仓库

    1、这里需要进行强行推送,操作前保持本地仓库和远程仓库保持一致。
    2、各个分支都需要推动一遍。

    git push origin 本地分支:远程分支 --force
    

    相关文章

      网友评论

          本文标题:git 删除历史commit的文件

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