我记得好像有一个指令可以对文件加密,得到 40 位 sha1 码,类似于:git sha1 a.txt 回车
     1 
                    
                    shalk      2017-04-28 11:06:34 +08:00 
                    
                    git hash-object 
                 | 
            
     2 
                    
                    thomaswang   OP @shalk , 多谢了,我要给小伙伴们分享 Git 内部原理,需要这个 
                 | 
            
     3 
                    
                    thomaswang   OP @shalk git hash-object 能计算出文件的 sha1 值,tree 和 commit 的 sha1 值是如何算出来的呢 
                 | 
            
     4 
                    
                    SoloCompany      2017-04-29 01:59:51 +08:00    tree object 可以用 git ls-tree | git mktree 重新计算出来 
                但如果用 git hash-object -t tree 的话,需要二进制格式,恐怕不是这么容易构造出来 commit object 的话,似乎没有什么好方法,好像也没有命令来构造二进制数据,虽然 git show <commit> — pretty=raw --no-patch 可以看到 commit 的完整内容,但没有命令可以把这个内容重新组装成一个 commit object  |