git维护两个主要的数据结构:对象库和索引。
对象库包含原始的数据文件和所有的日志消息、作者信息、日期,以及其他任意重建版本或分支的信息。
包含四种类型:块(blob)、目录树(tree)、提交(commit)和标签(tag)。
块:文件的每个版本表示为一个块。
目录树:一个目录树对象代表一层目录的信息。
提交:保存版本库中每一次变化的元数据,包括作者、提交者、提交日期和日志消息。
标签:分配一个任意的名字给一个特定的提交对象。
索引:暂时的信息,并且在需要时可以进行修改。临时的、动态的二进制文件,描述整个版本库的目录结构。
注:git对象库被组织成一个内容寻址的存储系统。其产生的全局唯一标识符是通过对内容进行散列计算出的。
git将所有文件分为:以追踪的(tracked)、忽略的(ignored)和未追踪的(untracked)
git ls-files --stage命令查看隐藏在对象模型下的东西,并且可以找到暂存文件的SHA1值。
git commit --all命令暂存所有已知的和修改的文件,并提交它们。
如:在修改之前已经提交过相关文件,那在修改后此文件无论是否在索引中,使用git commit --all命令都会自动提交到版本库中。
git rm命令从索引或同时从索引和工作目录中删除文件。
git rm --cached filename 命令只是从索引中删除文件,并把它保留在工作目录下。
本文深入探讨了Git维护的两种主要数据结构——对象库和索引的作用、组成及用法,解释了块、目录树、提交和标签的具体含义,并介绍了如何通过gitls-files--stage命令查看隐藏信息及使用gitcommit--all命令提交文件。
1050

被折叠的 条评论
为什么被折叠?



