欢迎来到Git的世界。我希望这份文件有助于推动您对这种强大的内容跟踪系统的理解,并揭示了它潜在的简单性 - 无论是眩晕它的选项似乎来自外面。
在我们潜入之前,有几个术语应该首先提到,因为他们整个文本中都会炫耀:
存储库 - 存储库是一个提交的集合,每个集合都是在过去的日期上的项目的工作树看起来像在你的机器或其他人的那样的档案。它还定义了头部(见下文),其标识分支或提交当前工作树源于源自。最后,它包含一组分支和标签,以通过名称识别某些提交。
索引 - 与您可能使用的其他类似工具不同,Git不会直接从工作树中的更改为存储库。相反,更改首先在称为索引的某些内容中注册。将其视为“确认”您的更改,在进行提交之前(这会立即记录所有批准的更改)。有些人发现称它称为“暂存区域”而不是索引有助于。
工作树 - 工作树是文件系统上的任何目录,它具有与它关联的存储库(通常是由其命名为.git中的子目录的存在指示。)。它包括该目录中的所有文件和子目录。
提交 - 提交在某个时间点的工作树的快照。在提交的时候,头部(见下文)成为提交的父母。这是创造了“修订历史”的概念。
分支 - 一个分支只是提交的名称(并且更多的是在一瞬间内的提交),也称为参考。这是一个定义其历史的提交的父母,因此是“开发分支”的典型概念。
标记 - 标记也是提交的名称,类似于分支,除了它始终命名相同的提交,并且可以拥有自己的描述文本。
Master - 大多数存储库中的开发的主线是在一个名为“** master **”的分支中完成的。虽然这是一个典型的默认值,但它绝不是特殊的。
您的存储库使用头部用于定义目前检查的内容:
如果检查分支,Head符号指的是该分支,指示应在下次提交操作之后更新分支名称。
如果您签署了特定的提交,则Head仅指该提交。这被称为分离头,例如,如果您查看标记名称。
通常的事件流程是:创建存储库后,您的工作是在工作树中完成的。一旦您的工作达到重要点 - 完成错误,工作日结束时,一切编译时的时刻 - 您将连续添加到索引中的更改。一旦索引包含要提交的所有内容,您将在存储库中录制其内容。这是一个简单的图表,显示了典型的项目的生命周期:
通过考虑到这张基本的图,以下部分应尝试描述这些不同实体中的每一个对Git的操作很重要。