GIT 库整理方法

      当一个对象在版本库中没有任何引用关联它的时候,它就成了"孤魂野鬼",不但发挥不了作用,还会白白占用版本库的容量空间。

    一般来说,撤销命令或更改命令会产生这些垃圾。如:

$ git reset  HEAD  //对暂存区的撤销命令

$ git reset --hard HEAD^  //对某次提交的撤销命令

清理垃圾的方法有以下2种:

1.人工手动法

‌step 1: $ git reflog expire --expire=now --all

//设置历史记录的过期时间为现在,默认为90天。目的是放弃所有未关联对象恢复的可能性,因为reflog 是找寻它们踪迹的最后途径了。

‌step 2: $ git reflog

//查看是否清空了引用记录

‌step 3: $ git prune

//执行清除命令,清除所有未关联的对象!

2.自动整理法

‌step 1: $ git reflog expire --expire=now --all

//设置所有未关联对象过期时间为现在,默认为90天。

‌step 2: $ git gc  [--prune=now]

//不加参数时,默认会清理两周之前产生的所有未关联的文件对象,加上参数则清理现在之前所有未关联文件对象。

*可以通过设置gc.auto 的值(默认值6700),当对象库.git/objects/17/子目录中的对象超过(gc.auto+255)/256 时,来使gc 自动执行整理命令。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • git常用命令 GIT常用命令备忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章阅读 8,666评论 1 26
  • 本片内容转自CSDN http://blog.csdn.net/ithomer/article/details/7...
    五娃儿阅读 4,966评论 2 88
  • 1.git的安装 1.1 在Windows上安装Git msysgit是Windows版的Git,从https:/...
    落魂灬阅读 12,730评论 4 54
  • 直入主题,现在我一天要被人拒绝好多次,原因就是我在做市场推广。做这份工作,我自己都想不到我原来还可以做这个工作。做...
    梅子梅子阅读 2,291评论 0 0
  • 散落的梧桐叶 悄悄带走了热情的季节 让我想起那一年的你 也是这样 带走了我的天真与无忧 每个亲密的游戏里 我会想念...
    潞江坝中國阅读 236评论 1 1