git 如何工作
尽管 Linus Torvalds
将 git 定位为:“傻瓜式的内容跟踪工具”,但它对不熟悉版本控制的朋友来说,还是过于复杂
所以我们需要先在概念上大概了解,git 是如何工作的
补丁
多数版本控制系统,使用补丁来纪录内容的改动。
当你修改了文件内容,版本控制系统会比较修改后的内容和原来的内容,并使用补丁纪录下来。 无论是查看版本之间的变化,或者需要回溯原来内容,都需要使用补丁中的内容
git 对象
工作树
git将工作目录称为:工作树
索引
工作树的快照,无论是添加、删除文件,或者对文件内容进行修改,都需要提交到索引。git只跟踪被索引的内容
将改动提交到索引,意味着建立一个快照
版本库
存储工作树的各种版本
工作树中只保存当前内容,各种版本通过补丁的形式存储在版本库中
版本名称
git可以使用“版本ID”和“版本标签”作为版本名称
版本ID自动生成,版本标签用git tag命令指定
操作级别
git可以在四种级别上实现版本控制:
改动纪录
改动了文件内容,提交到索引,但未提交到版本库
该级别的常见操作有:add diff
版本纪录
改动被提交到版本库后,就成为一个新的版本
该级别的常见操作有:commit log tag show reset
其中reset、以及分支操作,需要在commit之后,add之前,没有待提交改动纪录的情况下进行
分支
分支为该主线上的系列版本
版本库
协同工作时,需要合并项目成员的版本库
该级别常见的操作有:clone pull push