我想更多地了解git的内部工作原理,所以我运行了这些命令:
cd .git/objects/62
ls
00cb2f01089db22aca24675272a16712e89747
0ee798881329430bfef6c558be7b14c1f0676f
1087f408e2f2bd782d53a1211a7418fee4f6a7
a6a71f3bd5a3af882f3f0ec4fad4c672055746
f95e69f344b52c5038d922260189475626e69a
git cat-file -p 00cb2f01089db22aca24675272a16712e89747
Run Code Online (Sandbox Code Playgroud)
并得到以下错误:
fatal: Not a valid object name 00cb2f01089db22aca24675272a16712e89747
Run Code Online (Sandbox Code Playgroud)
我为什么得到它?
我试了10次(对于.git/objects里面不同目录的不同文件)并得到了同样的错误.
如何查看文件的实际内容(无论是blob,树还是提交)?
kni*_*ttl 25
您不必cd进入.git对象存储区,但必须提供完整的sha1哈希:
git cat-file -p 621087f408e2f2bd782d53a1211a7418fee4f6a7
Run Code Online (Sandbox Code Playgroud)
Git将其对象存储.git/objects在256个文件夹中,以保持目录的大小.每个哈希的前两个字符用作目录名称,其余38个字符用作文件名.