git维护的代码分为三个部分:当前工作区,index,git仓库。
![](https://img.haomeiwen.com/i855264/74ef15447872aae3.png)
工作区:git的工作目录是保存当前正在工作的文件所在的目录;
Index:git 索引是工作目录和git库目录之间的暂存区,staging area;
git仓库,就是commit之后的文件,所有的提交都保存这个地方。
1. git reset --hard xxx
彻底回退到某个版本,本地的源码也会变为上一个版本的内容,撤销的commit中所包含的内容更改被抹除掉。
- 使用
git log
命令查看提交的版本号,如果需要撤销最后一次提交,回退到某个版本,需要执行命令git reset --hard 需要回退的版本号
QQ图片20180604205329.png
-
注意:
上述命令执行成功之后,会彻底返回到回退前的版本状态,新的变更会丢失。对于部分发生了变化,但是变化部分的文件夹存在未提交的文件可能导致目录非空而删除失败,此时需要自行处理。
2. git reset --soft xxx
回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
- 使用
git log
命令查看提交的版本号,如果需要撤销最后一次提交,回退到某个版本,需要执行命令git reset --soft 需要回退的版本号
QQ图片20180604211913.png
3. git revert xxx
撤销某次操作,此次操作之前和之后的commit和history都会保留,并且把这次撤销
-
git revert HEAD
撤销前一次 commit -
git revert HEAD^
撤销前前一次 commit -
git revert commit
撤销指定的版本
网友评论