当前位置:   article > 正文

【Git】工作区 暂存区 版本库_git 工作目录 暂存区本地库

git 工作目录 暂存区本地库

上篇博客总结了一下git的常用命令,而在命令的操作背后,其实影响的是不同的工作区域。git的工作区域分为三个部分,分别为:工作区,暂存区和版本库。

一. 基本概念

  1. 工作区(working directory):将一个文件夹通过git init设置成一个git可以管理的文件夹时,这个文件夹里的内容就是工作区;
  2. 版本库(repository):当工作区生成后,可发现.git,这个就是版本库;
  3. 暂存区(stage / index):用来暂时存放工作区中修改的内容。

二. 工作图概览
这里写图片描述

  1. 什么是Object:Object是git对象库,是用来存储各种创建的对象以及内容;
  2. 什么是Master:Master即为主分支,当我们git init后,并不会立刻产生分支,而是在我们添加文件,git add , git commit 之后,才会看到master分支。
  3. 什么是HEAD:HEAD是一个引用,引用的是当前的分支。如果当前处于master分支,那么HEAD就会指向master,如果切换到dev或其它分支,则是指向切换到的分支。

三. 常用操作命令对不同区的影响

  1. git add :将对应更改的文件添加到暂存区,暂存区中的目录树会更新;
  2. git commit :将暂存区做出的修改提交到版本库中,这是master指向的分支被更新;
  3. git reset HEAD:暂存区的内容会被版本库的内容覆盖;
  4. git checkout –file:将工作区指定修改的文件被暂存区的内容覆盖(消除所有工作区进行的改动);
  5. git rm –cached:直接从暂存区将文件进行删除,不会影响工作区的内容;
  6. git checkout HEAD –file:将版本库中的对应的文件内容直接替换工作区和暂存区中的该文件。

四. 查看三个分区的区别

  1. git diff :查看工作区和暂存区的区别
  2. git diff –cached:查看暂存区和版本库之间的区别;
  3. git diff HEAD:查看工作区和版本库之间的区别;

五. 为什么需要暂存区

假设一个场景,当自己开发需求到一半,没有commit到版本库时,突然需要先紧急处理下线上的bug,但一时还不能完成手里的开发任务,这时,也不能commit提交给版本库,避免对其它人的影响。所以,如果没有一个暂存区,我们修改的文件只可以立刻保存到版本库中。

上述场景,我们利用git的暂存区,问题就可以很容易地处理,使用步骤如下:

  1. git stash :将自己工作区地修改内容隐藏
  2. 新建一个bug分支,处理bug
  3. 处理完成后,使用git stash pop将修改地内容重新移入到工作区
  4. 继续开发工作
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/860931
推荐阅读
相关标签
  

闽ICP备14008679号