Git简明教程--1.起步

写在前面:网上有很多Git的教程,比较优秀的有廖雪峰廖大的Git教程

但是我在学习的时候,感觉有些方面还是比较疑惑,虽然用GitHub DeskTop这种UI控制的Git版本,关于Git比较核心的部分还是理解不深,因此基于Git官方文档进行可学习并且记录

1.Git 简史

同生活中的许多伟大事件一样,Git 诞生于一个极富纷争大举创新的年代。Linux 内核开源项目有着为数众广的参与者。绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间)。到 2002 年,整个项目组开始启用分布式版本控制系统 BitKeeper 来管理和维护代码。

自诞生于 2005 年以来,Git 日臻成熟完善,在高度易用的同时,仍然保留着初期设定的目标。它的速度飞快,极其适合管理大项目,它还有着令人难以置信的非线性分支管理系统(见第三章),可以应付各种复杂的项目开发需求。

2.Git基础

直接记录快照,而非差异比较

实际上,Git 更像是把变化的文件作快照后,记录在一个微型的文件系统中。每次提交更新时,它会纵览一遍所有文件的指纹信息并对文件作一快照,然后保存一个指向这次快照的索引。为提高性能,若文件没有变化,Git 不会再次保存,而只对上次保存的快照作一链接。

近乎所有操作都是本地执行

这是Git相当好的一个优点,因为你不需要每次都去一个服务器下载整个项目,然后再和本地文件进行比较。

举个例子,如果要浏览项目的历史更新摘要,Git 不用跑到外面的服务器上去取数据回来,而直接从本地数据库读取后展示给你看。所以任何时候你都可以马上翻阅,无需等待。如果想要看当前版本的文件和一个月前的版本之间有何差异,Git 会取出一个月前的快照和当前文件作一次差异运算,而不用请求远程服务器来做这件事,或是把老版本的文件拉到本地来作比较。

文件的三种状态,Git本地文件存储的三个区域

这是本教程最重要的一点,了解清楚Git内部存储文件的三种状态可以说十分的重要,后面学习要很清楚到底文件发生了什么,或者说转换了什么状态

对于任何一个文件,在 Git 内都只有三种状态:

  • 已提交(committed)
  • 已修改(modified)
  • 已暂存(staged)

已提交表示该文件已经被安全地保存在本地数据库中了;已修改表示修改了某个文件,但还没有提交保存;已暂存表示把已修改的文件放在下次提交时要保存的清单中。

同时存在新添加未进入Git 内部的文件状态

  • 未跟踪(untrack)

Git简明教程--1.起步

同时Git内部有三个文件存储区域:

  • 工作目录(working directory):即正在编辑的文件状态。文件状态为未跟踪(untrack)和已修改(modified)在此区域内。
  • 暂存区(staging area):保存了下次将提交的文件列表信息。文件状态为已暂存(staged)在此区域内。
  • 版本快照仓库(git directory或者 repository):提交到本地快照仓库的文件。

当然如果你使用过GitHub你会了解到远程仓库:

  • 远程仓库(remote repository):是存在于远程计算机(服务器)上的版本快照仓库

    Git简明教程--1.起步

3.Git安装

Windows下,可以直接去Git官网进行下载安装:https://git-scm.com/

和普通软件的安装没有任何区别,安装完成以后打开CMD,输入git --version看到如下信息说明已经安装成功。

Git简明教程--1.起步

对于Linux下Git的安装,不同Linux发行版本有不同的安装软件方式

常见的发行版:

  • Ubuntu下:apt install git
  • CentOS下:yum install git

当然你也可以选择自己解压压缩包,然后手动make安装。


参考文献: