三条命令的作用都是撤销,但工作的方式不同。
首先,我依次建了4个文件。
一、git revert xxx
git revert xxx命令会对某次操作进行撤销,但是这次操作之前或者之后的commit都将被保留,并把这次撤销当做一次新的提交。
例:执行git revert 9da222b,本地文件会删掉c.html,并生成一次log记录。
二、git reset --hard xxx
git reset --hard xxx会重置当前的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致。
例:执行git reset --hard e5225ab,本地文件和commit信息都回退了。
三、git reset --soft xxx
git reset --soft xxx会重置当前的HEAD为指定commit,但保持暂存区和工作区不变。
例: 执行git reset --soft 9da222b,commit信息已经回退,但本地文件不改变。
网友评论