1

git三个区

在初始化git版本库之后会生成一个隐藏的文件 .git,可以将该文件理解为git的版本(repository),而我们自己建立的项目文件夹即工作区(working directory),在.git文件夹里面还有很多文件,其中index文件就是暂存区(stage),同事git还生成了一个分支master以及指向该分支的指针head。
例如我们打开开发环境如idea,里面的内容即工作区的内容,在工作区里面有的代码以及配置文件等我们需要提交到版本库里面,最终是到了分支master上面,暂存区只是一个临时保存修改文件的地方。
图片描述

工作区

工作区(Working Directory) 是我们直接编辑的地方。

暂存区(Stage/Index)

数据暂时存放的区域,可在工作区和版本库之间进行数据的友好交流。

  1. 暂存区只是一个简单的索引文件。
  2. 暂存区这个索引文件里面包含的是文件的目录树,像一个虚拟的工作区,在这个虚拟工作区的目录树中,记录了文件名、文件的时间戳、文件长度、文件类型以及最重要的SHA-1值,文件的内容并没有存储在其中,所以说 它像一个虚拟的工作区。
  3. 索引指向的是.git/objects下的文件。
  4. 暂存区的作用:除非是绕过暂存区直接提交,否则Git想把修改提交上去,就必须将修改存入暂存区最后才能commit。每次提交的是暂存区所对应的文件快照。

版本库(commit History)

存放已经提交的数据,push的时候,就是把这个区的数据 push到远程仓库了。

  #比较的是工作区和暂存区的差别
  git diff 
  #比较的是暂存区和版本库的差别
  git diff --cached 
  #可以查看工作区和版本库的差别
  git diff HEAD 

常用概念和命令

图片描述
图片描述

整理于processon


花花呀
363 声望21 粉丝

学无止境 做有灵魂的程序员