今天来讲一讲关于git reset 和 git revert的区别
在本地新建一个仓库名为test
mkdir test
进入test cd test
将test初始化为git仓库
$ git init
Initialized empty Git repository in C:/Users/Administrator/Desktop/test/.git/
在仓库里面新建一个文件,并添加到仓库中
touch 1.txt
git add .
git commit -m "add 1.txt"
[图片上传失败...(image-44efc6-1514642567342)]
推送到远程仓库中
git remote add origin git@github.com:WebsnowDrop/test.git
这时,git就有了第一个commit add 1.txt
[图片上传失败...(image-7f6d09-1514642567342)]
git revert
下面,修改1.txt的内容为"第一次修改",这时1.txt的内容为
[图片上传失败...(image-7408b1-1514642567342)]
这时,执行
git revert HEAD
git push origin master
我们看看会发生什么
[图片上传失败...(image-7ee995-1514642567342)]
我们看到commit增加了一条新的记录"Revert 第一次修改 "。
让我们看看1.txt的内容
[图片上传失败...(image-efc5f4-1514642567342)]
1.txt中的内容变为修改之前的内容了!我们添加的修改不见了。
所以,git revert的作用为
新增一次commit,而将工作区的内容还原到之前修改内容之前的版本
git reset
再让我们执行git reset d9fdc66ca52093b73874ba95a9d8eff4d011cda3
看下效果
[图片上传失败...(image-fb9523-1514642567342)]
看到第二和第三次commit记录都消失了!
所以,git reset的作用为
将工作区,暂存区,仓库中的所有版本退回到指定id的版本