Git 入门

Git 入门

Git 是一个分布式版本控制及源代码管理工具,Git 可以为你的项目保存若干快照,以此来对整个项目进行版本管理。

版本

什么是版本控制?

版本控制系统就是根据时间来记录一个或多个文件的更改情况的系统。

集中式版本控制 VS 分布式版本控制

  • 集中式版本控制的主要功能为同步,跟踪以及备份文件
  • 分布式版本控制则更注重共享更改。每一次更改都有唯一的标识
  • 分布式系统没有预定的结构。你也可以用 git 很轻松的实现 SVN 风格的集中式系统控制

为什么要使用Git?

  • 可以离线工作
  • 和他人协同工作变得简单
  • 分支很轻松
  • 合并很容易
  • Git 系统速度快,也很灵活

Git 架构

版本库

一系列文件,目录,历史记录,提交记录和头指针。 可以把它视作每个源代码文件都带有历史记录属性数据结构

一个 Git 版本库包括一个 .git 目录和其工作目录

.git 目录(版本库的一部分)

.git 目录包含所有的配置、日志、分支信息、头指针等 详细列表

工作目录 (版本库的一部分)

版本库中的目录和文件,可以看做就是你工作时的目录

索引(.git 目录)

索引就是 git 中的 staging 区. 可以算作是把你的工作目录与 Git 版本库分割开的一层 这使得开发者能够更灵活的决定要将要在版本库中添加什么内容

提交

一个 git 提交就是一组更改或者对工作目录操作的快照 比如你添加了5个文件,删除了2个文件,那么这些变化就会被写入一个提交比如你添加了5个文件,删除了2个文件,那么这些变化就会被写入一个提交中,而这个提交之后也可以被决定是否推送到另一个版本库中

分支

分支其实就是一个指向你最后一次的提交的指针。当你提交时,这个指针就会自动指向最新的提交

头指针 与 头(.git 文件夹的作用)

头指针是一个指向当前分支的指针,一个版本库只有一个当前活动的头指针

而头则可以指向版本库中任意一个提交,每个版本库也可以有多个头(HEAD)