俗话说一入Git深似海,单独说Git一本书恐怕都不够,今天只是浅尝止渴而已。
简单说说reset
和revert
2个主要命令。
![](https://img.haomeiwen.com/i5138806/7ac12f0e5b72bb54.png)
要学习Git,首先要明白Git几个基本概念
- Workspace:工作区
- Index / Stage:暂存区
- Repository:仓库区(或本地仓库)
搞懂了这三个区域,才能更好理解这些Git命令是在干什么。
一、reset
reset命令的作用?
reset
命令把当前分支指向另外一个位置(提交的ID版本号),并且有选择性的变动暂存区
和工作区
的内容。
原理是基于本地仓库的文件去覆盖暂存区或工作区的内容
reset主要参数的区别
当没有指定ID的时候,默认使用HEAD
,如果指定ID,那么就是基于指向ID去变动暂存区或工作区的内容
![](https://img.haomeiwen.com/i5138806/c3059b4fd10ee5f0.png)
// 没有指定ID, 暂存区的内容会被当前ID版本号的内容覆盖,工作区不变
git reset
// 指定ID,暂存区的内容会被指定ID版本号的内容覆盖,工作区不变
git reset <ID>
![](https://img.haomeiwen.com/i5138806/381aea58e7377111.png)
-
--mixed(默认)
默认的时候,只有暂存区变化
-
--hard参数
如果使用
--hard
参数,那么工作区也会变化 -
--soft
如果使用
--soft
参数,那么暂存区和工作区都不会变化
![](https://img.haomeiwen.com/i5138806/fd83f05245acc294.jpg)
![](https://img.haomeiwen.com/i5138806/35677d5e1af08cec.jpg)
![](https://img.haomeiwen.com/i5138806/b15fc7a439b58b6b.jpg)
![](https://img.haomeiwen.com/i5138806/3b10e210bfbf46ee.jpg)
二、revert
revert
命令撤销指定的commit并且新建一个commit,新建comment的内容由指定commit前一个提交内容保持一致
git revert <commit>
![](https://img.haomeiwen.com/i5138806/0bcdcc5d91da1717.jpg)
![](https://img.haomeiwen.com/i5138806/d30a6e4302a8ff89.jpg)
![](https://img.haomeiwen.com/i5138806/ed370f35140e8662.jpg)
参考链接
以上部分图片来源于图解Git
网友评论