git gc -- 压缩历史信息】的更多相关文章

格式:           git gc  [选项] <path> 选项 git commit -a 提交所有改动的文件(a -- all) NOTE: XX 举例 压缩历史消息 git gc null…
原文: http://gitbook.liuhui998.com/4_10.html 一.保证git良好的性能 在大的仓库中, git靠压缩历史信息来节约磁盘和内存空间. 压缩操作并不是自动进行的, 你需要手动执行 git gc: $ git gc 压缩操作比较耗时, 你运行git gc命令最好是在你没有其它工作的时候. 二.保持git的可靠性 git fsck 运行一些仓库的一致性检查, 如果有任何问题就会报告. 这项操作也有点耗时, 通常报的警告就是"悬空对象"(dangling…
一.保证git良好的性能 在大的仓库中, git靠压缩历史信息来节约磁盘和内存空间. 压缩操作并不是自动进行的, 你需要手动执行 git gc: $ git gc 压缩操作比较耗时, 你运行git gc命令最好是在你没有其它工作的时候. 二.保持git的可靠性 git fsck 运行一些仓库的一致性检查, 如果有任何问题就会报告. 这项操作也有点耗时, 通常报的警告就是“悬空对象"(dangling objects). $ git fsck dangling commit 7281251ddd2…
文件含义 verify-pack -- validate packed git archive files .git/objects/pack/.pack为压缩后的文件,把.git/objects/下松散的文件进行了压缩,.git/objects/pack/.idx为压缩后的索引,方便快速在压缩的文件里找到某个文件 手动执行git gc的时候,或者向远程推送的时候,都会进行打包的操作 在打包以后,git会在最后一个版本中存储完整的文件,而在前面的版本中存增量,这样做的目的是,git认为检出最后一…
前几天在写升级项目的时候发现./git/objects/pack/下的idx和pack文件是只读的,用java在windows下删除会抛异常,然后把只读属性改掉就好了. 于是就想弄清楚这两个文件的作用是什么. objects文件夹是用来存储git对象的. 然后每个文件的每个版本都有对应的对象,如果你想把这些对象压缩起来节省空间,就可以运行git gc命令,生成的就是pack文件下的idx和pack文件,一个是索引,记录偏移量,一个是对象的压缩文件. 以上,详细的资料: GIT科普系列3:底层存储…
git gc 有时候当你运行一些git命令(比如git pull)的时候,会有如下提示: 1 2 Auto packing the repository for optimum performance. You may also run "git gc" manually. See "git help gc" for more information. 翻译: 1 2 自动包装最佳性能的存储库. 你也可以手动运行 'get gc' .有关更多信息,请参见"…
Auto packing the repository for optimum performance. You may alsorun "git gc" manually. See "git help gc" for more information.Counting objects: 9231, done.Delta compression using up to 4 threads.fatal: Out of memory, malloc failed (tr…
前言 前情提要:Git应用详解第七讲:Git refspec与远程分支的重要操作 这一节主要介绍Git标签.别名与Git的垃圾回收机制. 一.Git标签(tag) 1.标签的实质 标签与分支十分相似,都是指向某一次提交:并且,它们的值都为各自指向提交的SHA1值:但是,不同于会随着提交的变化而变化的分支,一旦给某次提交添加了标签,该标签就永远不会发生变化. 注意:标签标识的是某一次提交,这次提交可以是任何分支上的任何一次提交. 两类标签 Git标签有两种: 轻量级标签(lightweight):…
rm -rf .git/gc.log ➜ test git:(abc) gp Auto packing the repository in background for optimum performance. See "git help gc" for manual housekeeping. warning: The last gc run reported the following. Please correct the root cause and remove .git/g…
一.追踪分支 1.追踪分支 在Git中‘追踪分支’是用于联系本地分支和远程分支的. 如果你在’追踪分支'(Tracking Branches)上执行推送(push)或拉取(pull)时,它会自动推送(push)或拉取(pull)到关联的远程分支上. 如果你经常要从远程仓库里拉取(pull)分支到本地,并且不想很麻烦的使用"git pull "这种格式; 那么就应当使用‘追踪分支'(Tracking Branches). git clone‘命令会自动在本地建立一个'master'分支,…
在你经常使用的命令当中有一个git branch –a 用来查看所有的分支,包括本地和远程的.但是时间长了你会发现有些分支在远程其实早就被删除了,但是在你本地依然可以看见这些被删除的分支. 同步远程分支的两种方式: 一.通过命令,git remote show origin 来查看有关于origin的一些信息,包括分支是否tracking.可以通过git remote prune 移除这个分支.(也就是说你可以刷新本地仓库与远程仓库的保持这些改动的同步) 使用命令 git remote show…
转载自实验楼,之前有更新过两篇git的文章,毕竟内容太少,而git还有很多更丰富的技能,在实验楼上有一系列全的教程,这里做一下备案.需要时查阅. Git 实战教程 目录 一.实验说明 二.git的初始化 1.Git 配置 三.获得一个Git仓库 1.Clone一个仓库 2.初始化一个新的仓库 四.正常的工作流程 1. 正常的工作流程 五.分支与合并 1.分支 2. 撤销一个合并 3.快速向前合并 六.Git日志 1.查看日志 2.日志统计 3.格式化日志 4.日志排序 七.小结 八.练习 一.实…
注:无git的方法参见:tar 或 7z 备份项目 首先利用homebrew安装p7zip $ brew install p7zip 然后利用两个shell脚本: backupProject.sh 会在指定的项目文件夹中找到所有.git目录,对其git gc压缩,然后用7za创建两个7z文件: PROJECTDIR.2016-03-15-12-00-00.Src.7z PROJECTDIR.2016-03-15-12-00-00.gitpack.7z restoreProject.sh 会将上述…
##快捷键 ##一. 快捷键 1. 清屏快捷键 control+L 2. vim快捷操作 * control+b 往上翻页 * Control+f 往下翻页 * shift+g 回到末尾 3. oh my sh(https://ohmyz.sh/) 4. 数据库查询工具 Data grip 5. control+a 快速跳到命令头部 6. control+e 快速跳到命令尾部 ##二. Git基本命令 1. git add * 作用: 将未追踪的文件纳入追踪文件中/将工作去修改添加到缓存区中/当…
目录 github 进阶说明 前言 三个目录树 重置 git reset 增加路径的reset 检出 checkout 带路径的checkout 仓库 数据对象 其他 资料 github 进阶说明 前言 我们可以什么都不管,照搬命令来完成我们大部分git工作,但是如果想要进一步,就要深入理解git的实现原理,和底层机制. 三个目录树 HEAD 仓库指针 index file 暂存区 Working Directory 工作目录 默认情况,头指针会指向当前分支,当前分支指向当前目录树.所谓目录树简…
http://blog.csdn.net/lihuanshuai/article/details/37345565 Git的底层并没有采用 CVS.SVN 底层所采用的那套增量式文件系统,而是采用一套自行维护的存储文件系统.当文件变动发生提交时,该文件系统存储的不是文件的差异信息,而是文件快照,即整个文件内容,并保存指向快照的索引.这种做法,提高 Git 分支的使用效率:但也容易导致代码仓库中内容重复程度过高,从而仓库体积过大.当遇到这种情况时,或者需要将仓库推送到远程主机时,就需要Git中的g…
原文: http://rypress.com/tutorials/git/plumbing 本文详细介绍GIT Plumbing--更加底层的git命令,你将会对git在内部是如何管理和呈现一个项目repo有一个深入的理解. 除非你想通读Git源代码,你可能永远没有必要使用下面的命令.但是通过手工的操作一个repo将会让你对于GIT如何保存数据的概念细节有个深入理解,你也将对于git是如何工作的有更好的理解. 我们首先来检阅Git的object database,然后我们使用git的低级命令手工…
Git (wiki: en  chs )是一个免费开源的分布式版本控制系统,由linux内核作者linus Torvalds开发,大型开源项目linux kernel.Android.chromium.mono.dotnet.UE4等都使用Git管理项目 著名github网站使用Git托管所有项目代码,Git的代码也托管在github上,链接为:https://github.com/git 与集中式版本控制系统(开源软件:SVN:免费软件:CVS:商业软件:微软的VSS.IBM的Rational…
本文由云+社区发表 作者:腾讯工蜂用户:王二卫 从不一样的视角了解git,以便更好的使用git 一.git & git 版本库认识 git 是一个内容寻址的文件系统,其核心部分是一个简单的键值对数据库(key-value data store),可以向该数据库插入任意类型的内容,它会返回一个40位长的哈希键值.并在此基础上提供了一个版本控制系统的用户界面. git 版本库其实只是一个简单的数据库,其中包含所有用来维护与管理项目的修订版本和历史信息.其不同于subversion,git版本库不仅提…
什么是分布式版本控制系统?Git有哪些常用命令?什么是仓库?Git的操作区域包括哪些?Git有哪些常用对象(object)?git rebase和git merge的区别是什么?git reset,git revert和git checkout的区别是什么?git submodule和git subtree的区别又是什么?git push和git push -u的区别又是什么?.gitignore如何使用?Git跟GitHub有没有关系?如何推送自己代码到GitHub?怎么在Gitee建立Git…
1.快速获取远程项目 1) git clone xxx.git // 如:git clone git://git.kernel.org/pub/scm/git/git.git 2) git clone robin.hu@http://www.kernel.org/pub/scm/git/git.git //带用户名方式访问,git会提示你密码 3)git clone -b master2 ../server // -b <name>指定某个分支克隆 4)  git clone -b [new_…
原文:http://gitbook.liuhui998.com/7_1.html 一.前言 所有的对象都以SHA值为索引用gzip格式压缩存储, 每个对象都包含了对象类型, 大小和内容. Git中存在两种对象 - 松散对象(loose object)和打包对象(packed object). 二.松散对象 松散对象是一种比较简单格式. 它就是磁盘上的一个存储压缩数据的文件. 每一个对象都被写入一个单独文件中. 如果你对象的SHA值是ab04d884140f7b0cf8bbf86d6883869f…
转载自:https://github.com/geeeeeeeeek/git-recipes/wiki/5.5-Git%E6%8F%90%E4%BA%A4%E5%BC%95%E7%94%A8%E5%92%8C%E5%BC%95%E7%94%A8%E6%97%A5%E5%BF%97 提交是Git的精髓所在,你无时不刻不在创建和缓存提交.查看以前的提交,或者用各种Git命令在仓库间转移你的提交.大多数的命令都对同一个提交操作,而有些会接受提交的引用作为参数.比如,你可以给git checkout传入…
如果正在使用svn,打算换到git,又暂时不想放弃已有的svn代码库,可以选择git-svn.说一说我自己从svn到git的经验吧. 开始 安装最新版本的git,从git 1.5.3以后支持git-svn,git和svn的配合就要借助这个功能. 安装完毕后要做一些简单的配置.最直接的做法就是创建修改~/.gitconfig.下面是我的.gitconfig [user] name = Robin Lu email = ---@gmail.com [color] diff = auto status…
文章目录 1. Git全解析之用起来先 1.1. 先安装Git环境 1.2. 配置 1.3. 简单了解Git 1.3.1. Git对象模型 SHA 1.3.2. Git目录与工作目录 1.4. 可以开始使用了 1.4.1. 获取仓库 1.4.2. 正常的工作流程 1.4.3. 分支与合并 1.4.3.1. 基本操作命令 1.4.3.2. 分支冲突 1.4.3.3. 撤销合并 1.4.4. log记录 1.4.5. 比较差异DIFF 1.5. 附录 .gitconfig文件配置参考 1.6. 参考…
很久没有写博客了,最近遇到了一个git问题,比较典型,记录下来与大家分享. 我们使用git版本控制的时候享受了很多便利,不管是代码合并,分支提供给我们的并发,但我们也往往忽略了每次提交之后在我们本地项目根目录下.git文件夹里面的存储变化.我遇到的git"臃肿"问题就是因为在提交的时候把较大文本加入版本控制,在其他人拉取更新反推远程分支的时候,每一次都会加剧.git下面的objects的文件夹大小,最终的结果就是再也无法顺利从远程pull,也无法顺利clone该项目. 关于.git的产…
Git 内部原理 不管你是从前面的章节直接跳到了本章,还是读完了其余各章一直到这,你都将在本章见识 Git 的内部工作原理和实现方式.我个人发现学习这些内容对于理解 Git 的用处和强大是非常重要的,不过也有人认为这些内容对于初学者来说可能难以理解且过于复杂.正因如此我把这部分内容放在最后一章,你在学习过程中可以先阅 读这部分,也可以晚点阅读这部分,这完全取决于你自己.(伯乐在线注:如果你对Git还不了解,建议从本Git系列第一篇文章开始阅读) 既然已经读到这了,就让我们开始吧.首先要弄明白一点…
目录: 减少[.git]文件夹的大小和文件数 更换git for windows的文本编辑器 修改已经提交的commit说明 合并commit 解决merge时出现的冲突 回退一个merge 获取某一commit的修改 将低版本push到Github(删掉高版本Commit) 减少[.git]文件夹的大小和文件数 随着commit次数的增多,.git文件夹的文件数和文件夹大小都会不断增大. 虽然对于小项目,增大的速度极慢,文件夹也基本在10M左右.但如果你和我一样,想减少该文件夹的文件数目(通常…
1,查看提交历史,git log 首先你要知道自己想合并的是哪几个提交,可以使用git log命令来查看提交历史,假如最近4条历史如下: commit 3ca6ec340edc66df13423f36f52919dfa3...... commit 1b4056686d1b494a5c86757f9eaed844...... commit 53f244ac8730d33b353bee3b24210b07...... commit 3a4226b4a0b6fa68783b07f1cee7b688..…
git的定义是一个内容寻址文件系统.内容.寻址.文件.系统,该来的总会来的… 本文旨在通过实践来介绍.git文件夹中的目录及文件功能,属git基础知识.但在此基础上可解决各git使用过程中可能遇到的问题,如“.git文件夹占用空间大”,“git如何找回丢失的对象(提交)”,”git diff 对比依据是什么”等, 话不多说,撸起袖子就是干,来看看 .git 是个啥样,这些个货色都是干嘛的. # 初始化git,查看内容 git init 产生一个.git隐藏文件夹 cd .git ls -F1 #…