git

Git(1)-结构分析(工作区、暂存区、分支、主干)

2019-10-30  本文已影响0人  小胖学编程

以idea为例,各个区特点如下图所示:

idea不同文件以及颜色区别.png

1. 概念

git的难点便在于工作区、暂存区、本地分支/主干似乎使用的是一套代码。

maven各个区概念以及常用的命令.png

工作区:实际上就是你所看到的代码目录。

工作区目录.png

暂存区(缓存区):一般存放在.git(工作区的隐藏)目录下的index文件中,所以暂存区也叫索引(index)。

暂存区索引.png

本地版本库:在.git目录下.git\refs\heads

版本库.png image.png

图片来源

2. 分支创建

  1. Git每次提交,都会将其串成一条时间线。分支/主干都是这条时间线上的指针,header指针指向当前分支。当前分支是master时,所有header指向master分支。
image.png
  1. 用户使用git checkout -b dev命令创建并切换到dev分支。此时我们可以修改和提交dev分支上的内容,故header指针指向dev分支。
    Git创建分支是非常快的,因为只是增加了一个dev指针,并且改变header指针的执指向。在《1. 概念》中,版本分支/主干文件都是1KB大小的,也可以印证这一观点。
image.png
  1. 用户在dev分支上提交。
    此时dev分支是最新版的内容,这也就是为什么我们切换到master分支上时,看不到dev分支上提交的内容。
image.png
  1. dev分支合并master主干分支。

Git合并主干也是非常快的,就是将master指针指向dev指针处。

image.png
  1. 删除dev分支

删除dev分支,实际上就是删除dev指针。

image.png
上一篇 下一篇

猜你喜欢

热点阅读