git reset是git的回退操作,能够将git版本退回到commit之前的状态。
git reset --soft HEAD^将git版本回退后只退回了commit的信息,而退回的信息存到暂存区,执行commit就可以恢复。
上图中commit之前新建了文件,reset之后文件在缓存区,再次执行commit之后与之前版本一样。
而git reset --hard HEAD^会重置暂存区,并且会将工作区代码也回退到这个版本,回退掉的内容无法再查找。
本图中commit之前新建了文件,reset之后此文件不见了,暂存区中也找不到该文件,无法恢复。
git revert 是是=生成一个新的提交来撤销某次提交,此次提交之前的commit都会被保留,在git log中能够看到日志,而之前的reset是直接退回,log中看不到日志。
图中能看到Revert “add”。