git长时间未清理无法拉取代码( git Auto packing the repository in background for optimum performance)
git本地仓库,如果长时间不进行清理,几个月以后的某一天,可能拉取代码的时候突然提示你 git Auto packing the repository in background for optimum performance. See "git help gc" for manu...
查资料,原来是自己本地一些 “悬空对象”太多(git删除分支或者清空stash的时候,这些其实还没有真正删除,成为悬空对象,我们可以使用merge命令可以从中恢复一些文件),话不多说,先上解决方法吧~!
解决方法:
1.输入命令:git fsck --lost-found,可以看到好多“dangling commit”
2.清空他们:git gc --prune=now,完成
原理解析:
Git的底层并没有采用 CVS、SVN 底层所采用的那套增量式文件系统,而是采用一套自行维护的存储文件系统。当文件变动发生提交时,该文件系统存储的不是文件的差异信息,而是文件快照,即整个文件内容,并保存指向快照的索引。这种做法,提高 Git 分支的使用效率;但也容易导致代码仓库中内容重复程度过高,从而仓库体积过大。当遇到这种情况时,或者需要将仓库推送到远程主机时,就需要Git中的gc(garbage collect)功能,也就是垃圾回收功能。
大体来说,当运行 "git gc" 命令时,Git会收集所有松散对象并将它们存入 packfile,合并这些 packfile 进一个大的 packfile,然后将不被任何 commit 引用并且已存在一段时间 (数月) 的对象删除。 此外,Git还会将所有引用 (references) 并入一个单独文件。
就细节而言,Git做了这几件事:
- pack_refs 过程
- reflog expire 过程
- repack 过程
- prune 过程
- rerere 过程
pack_refs 过程相当于执行"git pack-refs --all --prune",它会将$GIT_DIR/refs目录下的所有heads和tags打包成一个文件并保存为$GIT_DIR/packed-refs下。
reflog expire 过程相当于执行"git reflog expire --all",它会将删除所有超过期限而且没有被refs涉及的reflog条目。
repack 过程相当于执行"git repack -d -l",一般情况下还会包括"-A"选项,它会将所有未被包含在一个pack的松散对象连结成一个pack,也会将现有的pack重新组织为一个新的更有效率的pack,并删除冗余的pack(如果她们中存在不可达的松散对象,会先把这些对象释放出来)。
prune 过程相当于执行"git prune --expire",他会删除所有过期的、不可达的且未被打包的松散对象。
rerere 过程相当于执行"git rerere gc",这种情形下似乎没什么用。
git长时间未清理无法拉取代码( git Auto packing the repository in background for optimum performance)相关推荐
- 解决git拉取代码时报:Auto packing the repository in background for optimum performance
问题:git本地仓库,如果长时间不进行清理,拉取代码的时候突然提示: Auto packing the repository in background for optimum performance ...
- Auto packing the repository in background for optimum performance. See git help gc for manual hous
git gc 有时候当你运行一些git命令(比如git pull)的时候,会有如下提示: 1 2 Auto packing the repository for optimum performance ...
- git创建新的分支无法拉取代码的问题
有时候创建分支之后执行git pull会出现 $ git pull There is no tracking information for the current branch. Please sp ...
- 登陆用友服务器超时未响应,用友T3软件10.8plus1普及版服务器提示“客户端已经较长时间未连接加密服务器,超时2880秒,请退出产品重新登录”?-用友T3...
文章摘要:用友T3软件10.8plus1普及版服务器提示"客户端已经较长时间未连接加密服务器,超时2880秒,请退出产品重新登录"?10.8plus1普及版服务器提示"客 ...
- 原生js制作页面长时间未操作退出登录
昨天一个同事问我,进入到一个页面后,这个时候不进行任何操作,然后15分钟后就自动退出登录,这个功能怎么实现? 电脑进入待机状态原理 说到这个问题,我觉得这个问题 和 电脑长时间未操作进入待机状态是一个 ...
- t3服务器端文件未找到53,用友T3软件客户端已经较长时间未连接加密服务器,超时2880秒,请能出产品重新登录-用友T3...
文章摘要:用友T3软件客户端已经较长时间未连接加密服务器,超时2880秒,请能出产品重新登录客户端已经较长时间未连接加密服务器,超时2880秒,请能出产品重新登录 问题模块: 其他关键字:连接超时问题 ...
- 百度贴吧——因百度账号策略调整导致长时间未登录的账号(最后登录在2017年6月1日以前)网页端无法登陆、移动端异常解决方案
问题描述 尝试登录一个最后登录在2017年6月1日以前的百度账号时, 网页端在完成登录程序以后,仍然没有登录状态. 移动端APP在完成登录程序后,可以进行一般操作(查看.发布等),但是不能进行账号安全 ...
- 【Python】SQLAlchemy长时间未请求,数据库连接断开的原因、解决方案
这个问题好像和长时间连接数据库但不打开网页时,报错lost connection是一个原因 问题: 写了一个基于apscheduler的定时任务,里面的任务使用了sqlalchemy,大致如下: sc ...
- vue 上次登录时间_vue实现登录之后长时间未操作,退出登录
效果如下: vue实现用户登录系统之后,长时间未操作,提示登录超时,直接退出登录,跳转至登录页面. app.vue: import {mapActions } from 'vuex'; import ...
最新文章
- 指针小白:修改*p与p会对相应的地址的变量产生什么影响?各个变量指针的长度为多少?...
- 【操作系统】Classical Problems of Synchronization-信号量机制
- POJ 2299 Ultra-QuickSort(树状数组+离散化)
- Could not write file: C:\......\.classpath
- MVC 之 属性详解
- linux ntfs 速度慢,将U盘磁盘格式改成NTFS解决u盘复制速度慢问题
- VC2005 C++入门记
- python面试代码题_常见python面试题-手写代码系列
- TFS的站点中无法找到Report服务器
- 区块链软件:区块链的迅猛发展
- [开发笔记]-VS2012打开解决方案崩溃或点击项目崩溃
- cssd oracle,Oracle RAC /etc/init.d/init.cssd startcheck
- 使用NodeJS调用Dubbo工程
- python正则表达式应用
- 项目管理第十章项目沟通管理
- python使用有道智云翻译API
- Barrett reduction
- Milking Cows /// 区间计数 离散化排序 oj10105
- 干翻华为才有年终奖,“性感”小米发布MIX3,滑盖全面屏只要3299元
- 为Excel工作表单元格命名的两种方法
热门文章
- 什么是HTML 实体?
- Media Foundation
- c语言程序能在android,android环境下编译并运行C语言程序
- c语言程序在cmd,在windows命令行编译运行c程序
- Jetson Xavier NX (16) -- Jetson IIC: PCA9685
- linux的centos系统新建多个桌面(多个workspace)
- 能量冲击波神秘魔术动作特效音效Arcane Forces第二套 MAGIC - ARCANE FORCES CONSTRUCTION KIT
- (毕业设计)python个人健康自助记录查询系统 152015
- python -v 和-V
- Android widget桌面小部件