• GIT清理不要的文件和历史


    GIT

    有文件和目录不需要了,想把内容和历史记录全部清理掉,这样做:

    1,进入版本库目录

    2,删除文件和历史,执行命令

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

    git filter-branch --force --index-filter 'git rm --cached -r --ignore-unmatch 目录名' --prune-empty --tag-name-filter cat -- --all

    区别就是删除目录的时候多了“-r”

    执行完毕本地库里面的记录和工作副本都会被删除(被忽略的文件和目录会残留)

    再查看历史会发现相关的日志都没有了

    3,回收空间,执行以下三个命令

    git for-each-ref --format='delete %(refname)' refs/original | git update-ref --stdin

    git reflog expire --expire=now --all

    git gc --prune=now

    执行完会发现.git目录确实小了很多

    4,推送到上游库

    git push origin --force --all

    我没有验证这个,我回收完空间直接把本地库导出,覆盖上游库(注意修改config文件,把[remote]节下的url修正),这样感觉更放心

    注意:

    这种活属于管理操作,操作耗时,如果操作失败可能无法挽回,所以,先备份!折腾完用上一段时间觉得没问题才能删备份。

    理论上讲,正规发布的版本应该都有独立的拷贝,最新开发版本则在工作区里面,丢失的小版本其实也不是特别重要。

    嗯?发过的版本都找不回来?

    ===================================================================

  • 相关阅读:
    __doPostBack的使用
    【转】function,new,constructor and prototye
    谈谈一些网页游戏失败的原因到底有哪些?(转)
    全面剖析页游巨头发家史(转)
    2013.02.20开通博客
    老子喜欢的女人
    如何成为强大的程序员?(转)
    注重健康
    学习方法总结
    数据库知识点滴积累
  • 原文地址:https://www.cnblogs.com/shadowpigg/p/13969251.html
Copyright © 2020-2023  润新知