1.git的目录结构
1.1 新建一个git-test空文件夹,使用git init 初始化,交由git管理
1.2 .git 目录下 文件夹结构如下:
2.git如何保存数据?
2.1.对象类型
从内部来看,Git 是简单的 key-value 数据存储。它允许插入任意类型的内容,并会返回一个键值,通过该键值可以在任何时候再取出该内容。可以通过底层命令hash-object
来示范这点,传一些数据给该命令,它会将数据保存在 .git
目录并返回表示这些数据的键值。
tree对象
blob对象
commit对象
tag对象
对象之间关系:(参考git-scm.com官网图例)
2.2. 向git-test写入一个文件file.txt,观察.git目录下变化
对文件进行add --> commit 才会发现objects文件目录才发生变化,也就是说 git 在每次对本地版本库 进行commit的时候,就会对数据 进行一次保存,这是 会生成 commit对象,tree对象以及blob对象。Git 存储数据内容的方式──为每份内容生成一个文件,取得该内容与头信息的 SHA-1 校验和,创建以该校验和前两个字符为名称的子目录,并以 (校验和) 剩下 38 个字符为文件命名 (保存至子目录下)。
通过 cat-file
命令可以将数据内容取回。该命令是查看 Git 对象的瑞士军刀。
做些修改后再次提交,那么这次产生的提交对象会包含一个指向上次提交对象(父对象)的指针。
我们使用命令行查看一下刚刚写入文件变化:
第一次commit file.txt
第二次commit file2.txt file3.txt
参考下面截图:
1).查看2次提交的commitId ,以及 git cat-file 命令使用
2).查看第一次commit tree blob 类型 及存储类容
3).查看第二次commit tree blob 类型及内容
2.3 分支以及对象应用关系如下:
相关博客:
3).Github的使用(三)
4).Git 常用命令(四)
5).Git 版本回退(五)
6).Git版本冲突解决(六)
7).git 分支管理(七)
相关推荐
在初始化项目仓库时(gitclone或gitinit),Git会在根目录下创建一个.git目录,其下存放着Git操作和存储相关的内容,该目录结构大致如下:如图中所述:HEAD文件指向当前分支;index文件存储着暂存区的内容信息;refs...
git 文件管理PDF存储
这是一篇深入讲解git分支原理命令图文解析文章,开发人员必备
对于docker讲解,git常用命令讲解,以及linux环境各命令整理,适合中高级开发人员使用
GIT打包文件GIT打包文件GIT打包文件GIT打包文件GIT打包文件GIT打包文件GIT打包文件GIT打包文件GIT打包文件GIT打包文件GIT打包文件GIT打包文件GIT打包文件
git上传文件文件类型限制,如屏蔽一些依赖文件及生成文件上传
详细讲解git的使用,原理等,非常适合使用git库的同学
Git 原理以及范例, 包括分支,合并。
git课程讲义文件存储
C# .net的Git忽略文件整理
git文件包git文件包git文件包
Git忽略文件.gitignore
Git原理详解与实操指南\pdf\07 忽略文件权限:解决提示文件权限被修改问题-专栏. Git原理详解与实操指南\pdf\08 忽略指定文件或目录:排除项目配置文件-专栏. Git原理详解与实操指南\pdf\09 图形工具使用:各系统...
git上传大文件(git-lfs)以及忽略文件配置:.gitattributes .gitignore
myeclipse10.7 git 文件
对git的存储方式基本了解
Windows系统条件下,批量清除git版本管理配置文件,批量删除.git文件夹 使用方法:下载将该脚本文件,拷贝到要清除的项目的文件夹目录下,双击bat文件即可。
git-vim, 用于Git的vim文件 git.vim简介git vim提供:在Vim中调用git函数的插件文件git显示的语法文件命令:gitadd <文件>如果没有指定,git添加 <文件> 或者当前文件。:gitcomm
《ProGit》,很不错的一本书籍,对于Git的使用和原理具有不错的讲解。此书籍是中文版。