前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Git教程2(工作区和暂存区)

Git教程2(工作区和暂存区)

作者头像
用户4919348
发布2019-04-02 11:28:39
9540
发布2019-04-02 11:28:39
举报
文章被收录于专栏:波波烤鸭波波烤鸭

Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念,本文主要的目的就是给大家介绍清楚什么是暂存区.

一、工作区

Working Directory其实就是个文件夹。GitRepository1文件夹就是个工作区。

在这里插入图片描述
在这里插入图片描述

二、版本库

工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。 Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。

在这里插入图片描述
在这里插入图片描述

三、案例演示

修改read.txt文件,添加一行信息

hello git
hello git 2
hello git 3
hello git 4

新添加一个文件listener.txt

在这里插入图片描述
在这里插入图片描述

查看状态

在这里插入图片描述
在这里插入图片描述

此时的结构图为:

在这里插入图片描述
在这里插入图片描述

执行add命令

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

此时的结构图为:

在这里插入图片描述
在这里插入图片描述

所以,git add命令实际上就是把要提交的所有修改放到暂存区(Stage),然后,执行git commit就可以一次性把暂存区的所有修改提交到分支。

执行commit操作

在这里插入图片描述
在这里插入图片描述

一旦提交后,如果你又没有对工作区做任何修改,那么工作区就是“干净”的:

在这里插入图片描述
在这里插入图片描述

此时的结构图为:commit后暂存区就没有任何东西了

在这里插入图片描述
在这里插入图片描述

四、管理修改案例

为了进一步理解暂存区和工作区,我们通过具体例子我们来演示下

对read.txt文件进行修改

在这里插入图片描述
在这里插入图片描述

执行add操作

在这里插入图片描述
在这里插入图片描述

第二次对文件进行修改

在这里插入图片描述
在这里插入图片描述

执行commit操作

在这里插入图片描述
在这里插入图片描述

执行status操作

在这里插入图片描述
在这里插入图片描述

我们发现commit操作并没有将我们第二次修改的记录提交,因为我们只对第一次修改的记录执行了add操作,将这次修改的操作提交到了暂存区,第二次修改的信息还是在工作区,而commit操作只能将暂存区的数据提交,查看工作区和版本库中最新版本的区别通过 git diff HEAD – read.txt

在这里插入图片描述
在这里插入图片描述

那怎么提交第二次修改呢?你可以继续git add再git commit,也可以别着急提交第一次修改,先git add第二次修改,再git commit,就相当于把两次修改合并后一块提交了,

五、撤销管理

我们在开发过程中难免会出现bug,有代码需要撤销。这节就介绍撤销的几种场景。

未提交到暂存区

修改内容

在这里插入图片描述
在这里插入图片描述

撤销

撤销命令 git checkout – file

在这里插入图片描述
在这里插入图片描述

注意 update2也被撤销了,因为上个案例中update2也是被添加后没有执行add操作,所以一并也被撤销了。

提交到暂存区

有时我们会将数据提交到暂存区后才发现有问题,需要撤销,我们来看看怎么办

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

git 提示告诉我们可以通过 git reset HEAD file撤销命令

在这里插入图片描述
在这里插入图片描述

将修改从暂存区回退到工作区

在这里插入图片描述
在这里插入图片描述

回退到工作区我们就可以通过 git checkout – read.txt撤销

在这里插入图片描述
在这里插入图片描述

commit后

如果是内容已经被提交到了最新版本库中,但并没有提交到远程库中,则我们可以通过版本回退的方式撤销。

在这里插入图片描述
在这里插入图片描述

版本回退

在这里插入图片描述
在这里插入图片描述

六、删除管理

删除文件并版本库中删除

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

删除文件并从版本库找回

在这里插入图片描述
在这里插入图片描述

命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。

总结

工作区(Working Directory) 是我们直接编辑的地方,例如eclipse打开的项目,记事本打开的文本等,肉眼可见,直接操作。 暂存区(Stage 或 Index) 数据暂时存放的区域,可在工作区和版本库之间进行数据的友好交流。 版本库(commit History) 存放已经提交的数据,push 的时候,就是把这个区的数据 push 到远程仓库了。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年01月31日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、工作区
  • 二、版本库
  • 三、案例演示
    • 修改read.txt文件,添加一行信息
      • 新添加一个文件listener.txt
        • 查看状态
          • 执行add命令
            • 执行commit操作
            • 四、管理修改案例
              • 对read.txt文件进行修改
                • 执行add操作
                  • 第二次对文件进行修改
                    • 执行commit操作
                      • 执行status操作
                      • 五、撤销管理
                        • 未提交到暂存区
                          • 修改内容
                          • 撤销
                        • 提交到暂存区
                          • commit后
                            • 版本回退
                        • 六、删除管理
                          • 删除文件并版本库中删除
                            • 删除文件并从版本库找回
                            • 总结
                            领券
                            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档