zoukankan      html  css  js  c++  java
  • 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修正),这样感觉更放心

    注意:

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

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

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

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

  • 相关阅读:
    汉诺塔略写
    第六章实验报告
    第三次实验报告
    第五章 循环结构反思
    第二次实验报告
    第一次实验报告x
    第九章 结构体与共用体
    第八次实验报告
    第7章 数组实验
    第六章 函数和宏定义实验(2)
  • 原文地址:https://www.cnblogs.com/shadowpigg/p/13969251.html
Copyright © 2011-2022 走看看