如果你了解Git工作的基本原则,然后使用Git将容易的多。
Git和其他VCS之间的主要区别是Git考虑的是存储数据的方式。大部分的其他系统存储为基于文件改变的列表的信息。这些系统(CVS,Subversion,Perforce等)认为他们是一组文件,并随着时间的推移记录每个文件所做的更改信息。
上面这张图可以很好的理解,我们在版本库中有三个文件,他们都是版本1。
当我们在某个时间点修改了File A 和 File C 这两个文件,他们的版本都变成了版本2。而File B没有做修改所以我们的版本管理程序没有对它做任何标记,只有在版本4的时候修改了File B这个文件的时候才会做记录。
而Git和其他VCSS之间的一个重要区别,Git会认为它的数据更像是一组小型文件系统的快照。
每当你提交或保存了你的Git项目时,它主要负责创建文件快照,并存储到该快照的引用。
为了提高效率,如果文件没有改变,Git不会再次存储该文件,只会创建一个相同文件的链接。
存储在Git中的数据更像是一个快照流。
Git文件的三种状态
Git项目的三个主要部分:版本库,工作区和临时区
工作区(Working Directory)
就是你在电脑里能看到的目录,比如我的learngit
文件夹就是一个工作区:
版本库(Repository)
工作区有一个隐藏目录.git
,这个不算工作区,而是Git的版本库。
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master
,以及指向master
的一个指针叫HEAD
。
暂存区(stage 或者叫index)
你可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。
基本的Git的工作流程
1.修改工作区下的文件。
2.将修改的文件放入暂存区。
3.将暂存区的文件提交到版本库。