美文网首页git
Git(1)-结构分析(工作区、暂存区、分支、主干)

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

作者: 小胖学编程 | 来源:发表于2019-10-30 13:00 被阅读0次

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

idea不同文件以及颜色区别.png
  • 工作区:创建了文件,但未add操作,此时文件为红色;
  • 暂存区:对文件进行add操作,但未commit,此时文件为绿色;
  • 本地分支/主干:对文件进行commit,此时文件为白色;
  • 远程分支/主干:对文件进行push,此时文件上传到远程版本库;

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

相关文章

  • 15分钟Git

    Git 工作区 暂存区(Stage) 分支 工作区 --add--> 暂存区 --commit--> 分支 git...

  • 【git学习一】git add,commit的几个命令

    命令 git add 将文件添加到暂存区 git commit 将暂存区的内容提交到(本地)分支 工作区、暂存区和...

  • git 操作 - 2

    对于git的三个区的解释: 工作区 版本库(暂存区和分支)工作区: git的整个过程是这样: 1、不论在哪个分支上...

  • Git命令总结

    1.本地库结构 git status :查看工作区、暂存区状态 git add [filename] :将工作区添...

  • GIT命令介绍

    1、分支:git branch 2、添加文件暂存区:git add 说明:本地工作区下有untracked文件和t...

  • git使用大全

    git 1.工作区、暂存区、分支的具体含义 工作区就是git init之后的目录。 从工作区add指令后就会进入s...

  • Git命令行

    参考Git教程 1. 创建版本库 注意理解工作区、版本库、暂存区、分支的概念。 2. 版本回退(工作区、暂存区均重...

  • Git命令相关

    git的重要概念及工作原理 工作区 暂存区(staged) 分支(HEAD) 1. Git常用命令可总结如下图: ...

  • Git权威指南-第2篇-1

    标签: git [TOC] 1.Git结构 工作区/工作树/工作目录:当前Git正在管理的这个文件夹 暂存区/索引...

  • Git常用命令

    导航 1.Git的分区(工作区,暂存区,版本库) 2.Git分支 3.版本的回滚(revert,res...

网友评论

    本文标题:Git(1)-结构分析(工作区、暂存区、分支、主干)

    本文链接:https://www.haomeiwen.com/subject/ciizvctx.html