一、初识 .git
cd .git
- COMMIT_EDITMSG
- FETCH_HEAD
- HEAD:当前工作分支
- ORIG_HEAD
- config:当前仓库的配置信息
- index
- logs
- objects: 文件
- packed-refs
- refs:本地/远程分支和tag信息
cd objects
drwxr-xr-x 11 heqin staff 352 Mar 6 11:08 fb
drwxr-xr-x 17 heqin staff 544 Mar 6 10:06 fc
drwxr-xr-x 10 heqin staff 320 Feb 28 12:02 fd
drwxr-xr-x 15 heqin staff 480 Mar 1 11:52 fe
drwxr-xr-x 19 heqin staff 608 Mar 6 10:39 ff
drwxr-xr-x 2 heqin staff 64 Feb 13 16:11 info
drwxr-xr-x 20 heqin staff 640 Mar 5 09:31 pack :将松散的hash文件夹打包
cd fb
-r--r--r-- 1 heqin staff 48 Feb 15 10:52 00b237e2d3c368fd26fc9143ea7a0d06f144b4
-r--r--r-- 1 heqin staff 172 Mar 1 10:47 11e701e15678ac0fbf8de6788449cdb058c7bb
-r--r--r-- 1 heqin staff 252 Feb 13 17:51 17b2f75d2bd410cdc7ba0462ca067b82049b62
-r--r--r-- 1 heqin staff 48 Feb 28 13:12 4ed5900c4a761c66b0767b017aa0b56a0a0e57
-r--r--r-- 1 heqin staff 549 Mar 6 11:08 a5cf698c19f92e1144ad553e4c552eb0ab8ccd
-r--r--r-- 1 heqin staff 49 Mar 1 11:52 c21fdc38321d4ff364d4f771597db5b41804ed
fb和00b237e2d3c368fd26fc9143ea7a0d06f144b4组成一个完整的hash值
查看hash值的类型:
git cat-file -t fb00b237e2d3c368fd26fc9143ea7a0d06f144b4
tree
查看hash值的内容
git cat-file -p fb00b237e2d3c368fd26fc9143ea7a0d06f144b4
040000 tree 18652d5639dfa9808b26502dd62e4ad5879493ea devops
继续看18652d5的内容
git cat-file -p 18652d5
100644 blob f234a617597873c3ae13df54c7c99bd41e2ad65d ApplicationLoader.java
040000 tree 3223d5dce1ef8ff9c51ff0dbb4113cb3abe33cf2 adapter
040000 tree 64cbc72a931adde60f4d5d9f2479e9b10e41c293 application
040000 tree f110b06cf298d8b129a27ac0c75b379c167787c3 domain
040000 tree f21a7376bc59fe42e80fcb6455dc54136b0d88e8 infrastructure
git cat-file -p f234a617
@SpringBootApplication(exclude={DataSourceAutoConfiguration.class})
public class ApplicationLoader {
public static void main(String[] args) {
SpringApplication application = new SpringApplication(ApplicationLoader.class);
application.setAdditionalProfiles(MdpContextUtils.getHostEnvStr());
application.run(args);
}
}
从此处可以见blob已是文本类型,内容即是git的存储的内容
此处已涉及到2种对象类型
- tree 树(文件夹)类型
- blob 文件类型
二、commit、tree、blob之间的关系
对象关系图commit下包含tree对象和上一个提交commit(parent),tree下包含本次commit所有视图文件,如果视图中包含文件夹依然是个tree对象,如果是文件则是blob对象,blob对象的内容即使文件内容
三、常用命令
- 删除分支:git branch -D xxx
- 修改最新commit的message信息:git commit --amend
网友评论