本人为了更好的学习git的基本操作,利用github给提供的良好的服务,通过一个虚拟项目来熟练git的基本操作与原理。
在git中每一次版本信息都是对所有文件的一次快照,保存了指向这个快照的索引。
对于任何一个文件,git内部只有三种状态,已提交(committed),已修改(modified)和已暂存(staged).
已提交表示该文件已经被安全地保存在本地数据库中了;已修改表示修改了某个文件,但还没有提交保存;已暂存表示把已修改的文件放在下次提交时要保存的清单中。
文件的三种状态的转换可以看图,(手工画的)
每个项目都有一个 git 目录,它是 Git 用来保存元数据和对象数据库的地方。该目录非常重要,每次克隆镜像仓库的时候,实际拷贝的就是这个目录里面的数据。
从项目中取出某个版本的所有文件和目录,用以开始后续工作的叫做工作目录。这些文件实际上都是从 git 目录中的压缩对象数据库中提取出来的,接下来就可以在工作目录中对这些文件进行编辑。
所谓的暂存区域只不过是个简单的文件,一般都放在 git 目录中。有时候人们会把这个文件叫做索引文件,不过标准说法还是叫暂存区域。
说明:git是一个分布式的版本控制系统,也就是在你的本地有完整的一个仓库的备份,所以你几乎所有的操作都可以在本地完成,处理速度非常快,因为本地有完成的服务器数据镜像。
暂存区指的是文件已经修改,并且添加的版本控制追踪中,在下一次提交的时候即可提交到代码仓库中。
之所以有暂存区,是因为git的所有存入仓库的操作都是针对暂存区的文件进行的。
很多刚刚接触git的会被git的 本地数据库(git directory)弄晕,因为git本地保存了一个仓库镜像,所以你的所有操作都是对本地这个仓库进行操作的。这么理解就非常方便了。
git directory 经常被称为HEAD,就是当前的工作的分支,以后会经常遇到HEAD这个词。
这里也可以这么理解,就是git的本地仓库分为三颗“树”,一个是工作目录,一个是暂存区,成为索引区,记录下一次提交到仓库的文件,还有就是HEAD了,相当与仓库的本地备份。
这个是很简单的问题,请参考:http://yunsim.com/ch1-4.html
$ git config --global user.name "John Doe"
$ git config --global user.email [email protected]