1,plumbing
2,.git目录结构

– 一般
description 一般都是描述,不是很重要
config git项目的所有配置项
info 包含了我们不需要git追踪的排除掉的文件(exclude)
hooks 钩子,配合自动部署/自动构建
– 重要
head 指向了我们当前所处的分支指针
index 存储了暂存区的内容
objects 存储了git中所有的数据
refs 存储了所有的指针(包括branch、tag、remote)

3,底层命令

(1)git hash-object #接受一个value,然后返回SHA-1 hash值(40位)
例如:
echo ‘hello’ | git hash-object -w --stdin
如果不加–stdin的话,就要加上一个文件名

(2)git存储机制:
40位hash值,前2位作为文件夹名称,后38位作为文件名

(3)git cat-file #查看存储到git中的文件内容
例如:
git cat-file -p 38位hash值 #查看存储文件内容
git cat-file -t 38位hash值 #查看存储文件类型,blob类型
git cat-file -p master^{tree}

(4)find .git/objects -type f #查看.git/object中的所有文件

(5) git update-index --add --cacheinfo 100644 40位hash值 文件名
例如:
git update-index --add --cacheinfo 100644 83bddddd… test.txt
解释:
git update-index #将数据库中存储的某个blob数据的引用放到暂存区中
–add #因为暂存区中没有这个文件
–cacheinfo #不是从工作区中加入文件,是从git仓库(git数据库)加入文件
100644 #表示这是一个普通的文件

(6)git write-tree
创建一个tree object,将数据库内容的引用放入到暂存区

相当于基于暂存区中当前所有文件的版本(引用),创建一个快照

(7)git commit-tree
会生成一个commit object
commit object 包含:tree object、作者、提交人、备注等信息
可以理解为tree object就是项目当前的一个完整快照

(8)总结:
git add --add . === git update-index
git commit === git write-tree && git commit-tree

以战代练 Git内幕研究(一)相关推荐

  1. 中国速度之二神山建设(4):全能运维,召之即来,来之即战 | IDCF DevOps案例研究...

    内容来源:DevOps案例深度研究第4期 – 火神山雷神山 DevOps实践研究战队(本文只展示部分PPT及研究成果,全程视频请移步文末) 本案例内容贡献者:赖泽薇.张扬.邓茜芸.韦一.刘德权.候利涛 ...

  2. 以战代练!从应用程序出发练习你的编码技能吧

    全文共1086字,预计学习时长5分钟 图源:unsplash 想要拥有出色的编码技能,光靠看可学不来,必须自己亲自动手,付出努力和时间.练习太枯燥?别怕,本文为你准备了创意十足的应用程序想法,快点开始 ...

  3. 人工智能支撑马赛克战机理研究

    人工智能支撑马赛克战机理研究 人工智能技术与咨询 来源:<航空兵器>,作者付翔等 0 引言 近30年来, 随着信息化军事变革的兴起, 各种新的军事作战概念和作战理论层出不穷[1].从20世 ...

  4. git 修改tag 备注_【Git】第十二章:Git高级实战技巧

    1.查看不同版本之间的代码差异 短SHA-1值 使用git命令来代表某个commit时,我们不一定就是要用40位完整的SHA-1 hash值,也可以只是提供hash值的前几位就可以了,至少要4位以上, ...

  5. Git汇总--对象及版本库存储

    下述内容为团队内部分享整理所得,实用性较强,整体性偏差! PS:关于完整的Git内容,请参照之前发表过一系列文章,详见:Git Pro深入浅出(一).Git Pro深入浅出(二).Git Pro深入浅 ...

  6. 代码托管从业者 Git 指南

    本文作者:李博文 - CODING 后端开发工程师 前言 六七年前,我机缘巧合进入了代码托管行业,做过基于 Git 支持 SVN 客户端接入.Git 代码托管平台分布式.Git 代码托管读写分离.Gi ...

  7. 用Python分析了1982场英雄联盟数据,开局前预测游戏对局胜负!

    微信改版,加星标不迷路! 用Python分析如何打好英雄联盟? 作者:阿广 概述 前言 假设 游戏对战数据获取 分析和训练数据 游戏对战胜负预测 期望研究的问题 结论 阿广说 推荐阅读 前言 如今,只 ...

  8. Android开发者必备:推荐一款助力开发的开源APP

    今天,给大家推荐一款小而精的开源应用,该应用是同事推荐给我的,我使用后感觉不错遂在这儿分享给大家. 我们都知道,当我们新接触一个 Android 项目想要快速熟悉代码时,最好的方式就是运行起来,从看得 ...

  9. 计算机视觉结课论文,计算机视觉与图像识别结课论文

    <计算机视觉与图像识别结课论文>由会员分享,可在线阅读,更多相关<计算机视觉与图像识别结课论文(8页珍藏版)>请在人人文库网上搜索. 1.计算机视觉与图像识别结课论文基于C+的 ...

最新文章

  1. 【PAT笔记】C++标准模板库STL(二)——set的用法和示例
  2. crontab linux
  3. 由VMWorld2010想到的Social Media宣传
  4. 解决E: 仓库 “http://ppa.launchpad.net/fcitx-team/nightly/ubuntu bionic Release” 没有 Release 文件。
  5. [轉]Flash/Flex监听浏览器的关闭事件
  6. AcWing 3. 完全背包问题(完全背包模板)
  7. 有关字符串的算法(KMP,Manacher,BM)陆续补充
  8. Linux下替代grep高效文本搜索工具
  9. xssfdataformat 设置单元格式为数值_Excel表格为工作表的部分区域设置保护密码同时隐藏单元格内容。...
  10. 关于码云的一些基本知识_关于使用码云,GITHUB,阿里云CODE来管理代码的一些操作记录...
  11. RTX2.02 tiny中文手册
  12. JFlash烧录SPI FLASH
  13. 基于python个人睡眠质量分析设计与实现
  14. java解惑--谜题11:最后的笑声
  15. 股票十档行情数据接口怎么看?
  16. 安装minidwep-gtk出现了“离开目录”的错误
  17. 最常用到的35种心理效应集锦
  18. 中职一年级计算机学情分析,一年级学生学情分析
  19. java js 非对称加密算法_Java加密技术(四)——非对称加密算法RSA
  20. pip命令卸载所有库

热门文章

  1. MySQL中使用序列-Sequence
  2. Android视频硬解稳定性问题探讨和处理
  3. 软件能力成熟模型(CMM)的五个成熟级别
  4. 数据结构|二叉树前序、中序、后序遍历C++代码实现(递归)
  5. 最小堆提升每次排序的效率
  6. win10电脑如何修改ip地址
  7. 使用Tortoise SVN Merge版本合并时遇到的合并失败
  8. mysql外键名_MySQL外键(foreign key)使用及说明详解
  9. 使用netoffice时出现一下问题处理方法
  10. MySQL数据库入门练习100句