-
工作方式:
Git 并不保存这些前后变化的差异数据。实际上,Git 更像是把变化的文件作快照后,记录在一个微型的文件系统中。每次提交更新时,它会纵览一遍所有文件的指纹信息并对文件作一快照,然后保存一个指向这次快照的索引。为提高性能,若文件没有变化,Git 不会再次保存,而只对上次保存的快照作一链接。
-
Git 的工作方式如图所示:
-
优势:
1.在 Git 中的绝大多数操作都只需要访问本地文件和资源,不用连网。
2.本地就是一个完整的代码仓库,可独立工作。
3.由于代码是分布式,即使服务器磁盘故障也不会丢代码。
4.历史修改该记录可完整保存。
-
Git三种状态
1.已修改(modified):已修改表示修改了文件,但还没保存到数据库中。
2.已暂存(staged):已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
3.已提交(committed):已提交表示数据已经安全的保存在本地数据库中。 -
基本的 Git 工作流程如下:
1.在工作目录中修改文件。
2.暂存文件,将文件的快照放入暂存区域。
3.提交更新,找到暂存区域的文件,将快照永久性存储到 Git 仓库目录。
-
工作区、暂存区、版本库
1.工作区:简单理解就是需要进行版本的某个文件夹(假设为demo),这个文件夹有一些特殊之处——多了.git这个隐藏的文件夹。
2.暂存区:暂存区可以理解为一个虚拟工作区,这个虚拟工作区会跟踪工作区的文件变化(增删改等操作)。这个工作区的位于.git文件夹下的index目录下。
3.版本库:demo文件夹下的.git文件夹就是版本库。需要理解一点:
当需要对工作区的修改提交到版本库前,暂存区会与工作区进行差异比较,如果工作区与暂存区的文件不一致,那么需要同步工作区的修改到暂存区,然后才可以提交到版本库。从这个意义讲,暂存区可以说是工作区和版本库的桥梁。好处自然是可以在真正提交到版本库之前做任意的操作,在需要真正提交的时候push到版本库。 -
下面通过一张图理解为工作区、暂存区和版本库的关系: