git “<rev>^{tree}” REVISION语义

6月 8, 2017 |

当我们执行git add .的时候,git为每个待放入stage区域的文件生成一个object SHA-1 hash,为每个目录生成一个tree SHA-1 hash。
当我们执行git commit的时候,git为当前工程生成一个tree SHA-1 hash且为此次提交生成一个commit SHA-1 hash。

javacoder.cn整理,转载请注明出处

示例如下

$ git log --oneline

dd39e4f  first commit ,yeah
664e6f8 Initial commit

$ git cat-file -p dd39e4f

tree 57b0d616d1632db2faa16f46ade1b5b602718612
parent 664e6f813edcef363dc00dacf5e6d2ea812de2af
author javacodercn <javacoder.cn@hotmail.com> 1496666027 +0800
committer javacoder <javacoder.cn@hotmail.com> 1496666027 +0800

first commit ,yeah

$ git cat-file -p 57b0d616d1632db2faa16f46ade1b5b602718612

100644 blob cbfa161aa0ddf63d1d93b710c085a0b346829925 README.md
100644 blob 21897740d45f07c5128a76533b2662c508f70470 test.java

$ git cat-file -p dd39e4f^{tree} 

100644 blob cbfa161aa0ddf63d1d93b710c085a0b346829925 README.md
100644 blob 21897740d45f07c5128a76533b2662c508f70470 test.java

可以看到 dd39e4f^{tree}表示的是dd39e4f提交时对于的tree 对象

Posted in: Git

Comments are closed.