Git Community Book 翻译 (一)
?
所有用来表示项目历史信息的文件是通过一个40字符(40-digit)“对象名”,像这样的“6ff87c4664981e4397625791c8ea3bbb5f2279a3”。你会在Git里到处看到这种“40字符”字符串。每一个“对象名”都是通过对对象内容用SHA1做哈希计算得来的,(SHA1是一种密码学的哈希算法)。这样就意味着两个不同内容的对象不可能有相同的“对象名”。
?
这样做有会有几个好处:
?
The Objects
每个对象(object) 包括三个东东:类型,大小和内容。大小就是指内容的大小,内容取决于对象的类型,有四种类型的对象:"blob"、"tree"、 "commit" 和"tag"。
1)“blob”用来存储文件数据,通常是一个文件
2)“tree”有点像一个目录,它管理一些“tree”或是 “blob”(就像文件和子目录)
3)一个“commit”指向一个"tree",making it as what the project looked like at a certain point in time。它包括一些关于时间点的元数据,如时间戳、最近一次提交的作者、指前上次提交(commits)的指针。
4)一个“tag”是来标记某一个提交(commit) 的方法。
?
?