用到Git,工作区、暂存区、版本库这几个概念以及区别一定要搞清楚,这样你才能知道自己目前在做什么~
工作区、暂存区、版本库概念
1. 工作区:就是自己的工作目录,例如IntelliJ IDEA,目录的内容就是工作区的内容。 (写代码时代码保存的地方)
2. 暂存区:.git文件中有一个index,这就是暂存区。 (你执行add后代码去的地方)
3. 版本库:.git文件即版本库 (执行commit后代码去的地方)
git还会自动生成一个分支master以及指向该分支的指针head:
1. Git的操作围绕工作区、暂存区(图中的index)、版本库(图中的master,实际上这是版本库的主分支)、对象库(图中的objects)几个部分进行。
2. 工作区、暂存区和版本库都维持着一棵目录树。
3. objects 标识的区域为 Git 的对象库,实际位于.git/objects目录下。
4. 暂存区跟踪记录了工作区的文件名和文件状态(修改时间,文件大小等信息)。
5. 图中的HEAD是一个指向最新commit的引用,可以通过版本回退的方式改变HEAD的指向。
6. 执行git add会更新暂存区的目录树,同时将工作区的文件内容生成一个对象放入objects对象库中,在暂存区记录了该对象的索引index。
7. 执行git commit会更新版本库的目录树,commit成功后版本库指向的目录树就是暂存区的目录树。
Diff命令的区别使用
1. git diff 比较的是工作区和暂存区的差别
2. git diff –cached 比较的是暂存区和版本库的差别
3. git diff HEAD 可以查看工作区和版本库的差别
相关文章