博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
git revert 和reset的区别
阅读量:6041 次
发布时间:2019-06-20

本文共 1892 字,大约阅读时间需要 6 分钟。

hot3.png

这里讲一下git revert和git reset的区别:

git revert 是撤销某次操作,此次操作之前的commit都会被保留

git reset 是撤销某次提交,但是此次之后的修改都会被退回到暂存区

具体一个例子,假设有三个commit, git st:

commit3: add test3.c

commit2: add test2.c

commit1: add test1.c

当执行git revert HEAD~1时, commit2被撤销了

git log可以看到:

commit1:add test1.c

commit3:add test3.c

git st 没有任何变化

如果换做执行git reset --soft(默认) HEAD~1后,运行git log

commit2: add test2.c

commit1: add test1.c

运行git st, 则test3.c处于暂存区,准备提交。

如果换做执行git reset --hard HEAD~1后,

显示:HEAD is now at commit2,运行git log

commit2: add test2.c

commit1: add test1.c

运行git st, 没有任何变化

----------------------------------------------------------------------------------------------

另外,说一下git revert ,git reset –hard和 –soft的区别

git reset –mixed id ,是将git的HEAD变了(也就是提交记录变了),但文件并没有改变,(也就是working tree并没有改变)。

git reset –soft id. 实际上,是git reset –mixed id 后,又做了一次git add
git reset –herd id.是将git的HEAD变了,文件也变了。

git revert与git reset最大的不同是,git revert 仅仅是撤销某次提交。

比如git revert HEAD~1  ,那么会撤销倒数第二次的提交结果。而倒数第一次的提交记录,仍然在。
如果git reset –hard HEAD~1,那么,commit退回到倒数第三次的状态中。
总体来讲,还是git revert 好啊,雁过留声嘛。

其实,通过git reset –soft id的方法,可以将原来多次的git提交记录合并为一个。

git reset是指将当前head的内容重置,不会留log信息。

  • git reset HEAD filename  从暂存区中移除文件
  • git reset –hard HEAD~3  会将最新的3次提交全部重置,就像没有提交过一样。
  • git reset –hard commit (38679ed709fd0a3767b79b93d0fba5bb8dd235f8) 回退到 38679ed709fd0a3767b79b93d0fba5bb8dd235f8 版本

----------------------------------------------------------------------------------------------

根据–soft –mixed –hard,会对working tree和index和HEAD进行重置:

  1. git reset –mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息
  2. git reset –soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
  3. git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容

git reset -soft :取消了commit  

git reset -mixed(默认) :取消了commit ,取消了add

git reset -hard :取消了commit ,取消了add,取消源文件修改

====

http://hi.baidu.com/lingzhixu/blog/item/569f45c4cbf39925f8dc619e.html

转载于:https://my.oschina.net/MinGKai/blog/144932

你可能感兴趣的文章
java 获取系统当前时间的方法
查看>>
Ubuntu 10.04升级git 到1.7.2或更高的可行方法
查看>>
Spring Security4实战与原理分析视频课程( 扩展+自定义)
查看>>
第一周博客作业
查看>>
thinkpython2
查看>>
oracle recyclebin与flashback drop
查看>>
svmlight使用说明
查看>>
Swing 和AWT之间的关系
查看>>
Mysql设置自增长主键的初始值
查看>>
Android计时器正确应用方式解析
查看>>
获取post传输参数
查看>>
ASP生成静态页面的方法
查看>>
HDU 1325 Is It A Tree? 判断是否为一棵树
查看>>
Shell命令-文件压缩解压缩之gzip、zip
查看>>
个人总结
查看>>
uva 673 Parentheses Balance
查看>>
Bzoj 2252: [2010Beijing wc]矩阵距离 广搜
查看>>
css 禁止选中文本
查看>>
bzoj2165
查看>>
算术运算表达式正则及分析
查看>>