git reset --hard xxx
git reset --soft xxx
git revert xxx
以上三个命令行的区别
first thinkin
- 命令
git reset
和git revert
命令行是将working directory和staging area 区块之间的状态回溯 - 即,当使用了
git add ./
后将所有的更改文件缓存到staging area 后发现自己文件更改错误,还是需要之前一个版本的代码状态 -
git reset
和git revert
都是将缓存区的代码状态更改到之前版本,不同的是git reset
是回到之前的版本代码.git文件中是不会
记载当时git add ./文件后的git流程节点 -
git revert
是保留git add ./后增加的流程节点,再增加一次流程节点到之前的版本的代码状态
search answer
不带参数和属性的 git reset 的确是缓存区和working directory之间的代码回溯状况,
but 带参数和属性的git reset 就没有这么简单了。
- git reset远程git 回溯到指定的代码状态
git log
可以查看git commit的节点名称 还可以用HEAD来指向当前分支的节点
git reset HEAD^ --hard
HARD^是指之前的一个分支
而后面
--hard
、--soft
、mixed
是代表代码回溯到某个commit节点后的作用域
--soft –– 缓存区和工作目录都不会被改变
--mixed –– 默认选项。缓存区和你指定的提交同步,但工作目录不受影响
--hard –– 缓存区和工作目录都同步到你指定的提交
- git revert HEAD^ 是重新再回滚到之前的节点但是并不消除原来的commit
其作用域不作用于缓存区和working directory