git reset --soft,git reset --har
2018-12-06 本文已影响0人
东郭皮蛋
git reset与git revert的区别
- git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit。
- git reset是把HEAD向后移动了一下,而git revert是HEAD继续前进,只是新的commit的内容和要revert的内容正好相反,能够抵消要被revert的内容。
git reset --soft与git reset --hard的区别
- git reset --soft命令会让版本回到某次commit后的状态,但并不改动工作目录中的文件,git reset --hard命令将版本库回退到指定版本后不仅仅是将本地版本库的头指针全部重置到指定版本,也会重置暂存区,并且会将工作区代码也回退到这个版本。
实际操作
git revert
1.首先在本地库中,添加三个文件,每添加一个commit一次,得到三个版本。

2.然后输入git revert head命令,发现新增了一个版本,该版本中只有1.html和2.html,撤销了第三个版本新添加的3.html。

git reset --soft与git reset --hard
1.首先在本地库中,添加三个文件,每添加一个commit一次,得到三个版本。

2.然后输入git reset --soft HEAD^命令,回滚到上一版本,执行后发现第三个版本也删除,回滚到第二个版本,此时因为git reset --soft命令只让版本回到某次commit后的状态,所以无需再执行git add命令,可直接再次执行git commit命令,再次回到第三个版本。

3.最后输入git reset --hard HEAD^命令,同样是回滚到第二个版本,需要重新执行git add命令,在执行git commit命令才能回到第三个版本。
