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

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


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

一、工作区

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

image.png

二、版本库

   工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

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

image.png

三、案例演示

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

hello git
hello git 2
hello git 3
hello git 4

新添加一个文件listener.txt

image.png

查看状态

image.png

此时的结构图为:

image.png

执行add命令

image.pngimage.png

此时的结构图为:

image.png

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

执行commit操作

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

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

image.png四、管理修改案例

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

对read.txt文件进行修改

image.png

执行add操作

image.png

第二次对文件进行修改

image.png

执行commit操作

image.png

执行status操作

image.png

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

image.png

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

五、撤销管理

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

未提交到暂存区

修改内容

image.png

撤销

   撤销命令 git checkout – file

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

提交到暂存区

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

image.pngimage.png

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

 image.png

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

image.png

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

image.png

commit后

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

image.png

版本回退

image.png

六、删除管理

删除文件并版本库中删除

image.pngimage.png

删除文件并从版本库找回

image.png

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

总结

工作区(Working Directory)

是我们直接编辑的地方,例如eclipse打开的项目,记事本打开的文本等,肉眼可见,直接操作。

暂存区(Stage 或 Index)

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

版本库(commit History)

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


相关文章
|
2月前
|
存储 开发工具 git
git工具使用教程全讲解
本文介绍了版本控制的概念及其重要性,详细对比了多种版本控制工具,如VSS、CVS、SVN和Git,重点讲解了Git的基本使用方法、工作原理及与SVN的区别。此外,文章还介绍了GitHub、GitLab和Gitee等流行的代码托管平台,以及如何在这些平台上注册账号、创建和管理仓库。最后,文章还提供了如何在IntelliJ IDEA中配置和使用Git的具体步骤。
68 1
|
3月前
|
编译器 开发工具 数据安全/隐私保护
Git——多人协作/版本控制,在一个gitee仓库下开发(Gitee版教程)手把手教学,包好用的!
本文提供了一个关于如何在Gitee上进行多人协作和版本控制的详细教程,包括新建和初始化仓库、克隆仓库、邀请好友共同管理仓库以及注意事项,旨在帮助用户顺利进行代码协作开发。
429 0
Git——多人协作/版本控制,在一个gitee仓库下开发(Gitee版教程)手把手教学,包好用的!
|
5月前
|
开发工具 对象存储 git
|
5月前
|
Linux 开发工具 git
|
7月前
|
存储 开发工具 git
蓝易云 - git中,add到暂存区,commit且push之后,暂存区域里还有内容吗
所以,当你执行 `git add`,然后是 `git commit`,最后是 `git push`之后,暂存区是空的,除非你又执行了新的 `git add`命令来添加更多的更改。
58 1
|
6月前
|
数据可视化 程序员 开发工具
小白也能玩转Git:从入门到实战详细教程
小白也能玩转Git:从入门到实战详细教程
|
6月前
|
Ubuntu 开发工具 git
git 超实用教程【人人必会!】(含大厂的 git 操作规范)
git 超实用教程【人人必会!】(含大厂的 git 操作规范)
102 0
|
8月前
|
存储 开发工具 git
|
8月前
|
Ubuntu Linux 开发工具
|
8月前
|
开发工具 git
Git 保姆级教程(二):Git 分支
Git 保姆级教程(二):Git 分支