git学习笔记(二)
来源:互联网 发布:外国人学中文的软件 编辑:程序博客网 时间:2024/06/07 11:33
本篇为git学习笔记的第二篇文章。
一、工作区与暂存区
在Git中暂存区(stage或者index)是重要的概念之一。我们工作的目录称为工作区,还有一个.git隐藏目录称为版本库,里面包含暂存区和各个分支。其中存在一个指向当前分支的指针HEAD。
关系如图所示:
如上图所示,当我们使用git add命令时,我们就将工作区的变动添加到暂存区,当使用git commit命令时就将暂存区的变动提交到了当前分支。
了解工作区、暂存区概念便于我们理解许多git命令,下面就学习一些与工作区和暂存区有关的命令。
二、与工作区和暂存区相关的命令
- git diff 比较文件差异
$ git diff #比较工作区和暂存区差异$ git diff HEAD #比较HEAD和工作区差异$ git diff --cached #比较暂存区和HEAD差异
验证:新建一个文件diffTest.txt,在文件中写入一个单词one,然后执行git add,接着执行git commit提交到版本库。
然后再在文件第二行写入单词two,保存。执行命令git diff
git提示文件发生变化,多了一行two。这时执行命令git add,将变动后的文件添加到暂存区。再次执行git diff
发现git没有提示任何内容,这是因为git diff比较的是工作区和暂存的文件。我们已经将变动后的文件添加到了暂存区,这时工作区和暂存区的文件是一致的。
执行命令git diff –cached对比暂存区和HEAD中文件差异,结果如下:
接着我们在文件第三行写入单词three。执行命令git diff HEAD,结果如下:
git提示有两行存在差异,这也证明了git diff HEAD对比的是工作区和HEAD中文件差异。
- 撤销文件修改
$ git checkout -- filename #暂存区覆盖工作区$ git reset HEAD #HEAD覆盖暂存区$ git checkout HEAD #HEAD同时覆盖工作区和暂存区
接着刚刚的操作。此时diffTest.txt文件在工作区、暂存区和HEAD中都是不同的,分别为one two three、one two、one。
使用命令git checkout – filename用暂存区文件覆盖工作区文件,并查看文件内容,结果如下:
可以看到工作区中文件内容已经变成了one two,文件内容被暂存区覆盖。
接着执行命令git reset HEAD,用HEAD文件覆盖暂存区文件,并查看暂存区和HEAD文件差异,结果如下:
可以看暂存区中文件内容被覆盖为one。
最后我们执行git checkout HEAD,用HEAD中文件同时覆盖工作区和暂存区,结果如下:
可以看到这时,工作区、暂存区和HEAD中文件内容保持一致。
- git rm删除文件
$ git rm filename #同时删除工作区和暂存区文件$ git rm --cached #只删除暂存区文件$ rm #只删除工作区文件
验证:
新增文件rmTest.txt,并通过git status查看工作区状态,如下如所示:
可以看到rmTest.txt 为untracked新增文件状态,执行git add将rmTest.txt添加到暂存区,再次通过git status查看状态,接着执行git rm –cached,最后再次执行git status查看状态,发现rmTest.txt又恢复到untracked新增文件状态,说明git rm –cached将暂存区中文件删除了。
- Git学习笔记(二)
- git学习笔记(二)
- Git学习笔记(二)
- Git学习笔记(二)
- Git学习笔记(二)
- Git学习笔记(二)
- Git学习笔记(二)
- Git学习笔记(二)
- git学习笔记(二)
- git学习笔记(二)
- Git学习笔记(二)
- Git学习笔记(二) Git初始化
- Git学习笔记(二) Git初始化
- Git学习笔记(二) 远程Git
- git 学习笔记二
- Git学习笔记(二)
- Git学习笔记二
- Git学习笔记(二)
- 8 种 NoSQL 数据库系统对比
- AJAX 跨域请求
- 万字长文|如何直观解释卷积神经网络的工作原理?
- Android动画进阶—使用开源动画库nineoldandroids
- 4412驱动实验之05 总线_设备_驱动注册流程详解
- git学习笔记(二)
- HDU 5441 Travel (并查集 离线处理)
- 关于STM32中定义数组的问题
- Android 沉浸式状态栏攻略 让你的状态栏变色吧
- 百练_2735:八进制到十进制
- Python学习(三)-2
- webpack的使用,以及其与gulp的对比
- 代理模式
- 108. Convert Sorted Array to Binary Search Tree