git reset
git reset 命令用于回退版本,能够指定退回指定提交的版本,并删除该版本之后的所有提交。
示例: 提交记录 a -> b -> c -> d, 执行git reset b之后,变为 a -> b
git reset [--soft | --mixed | --hard] [HEAD]
- --mixed 默认参数,保留现有工作区改变,之前的提交的内容复原至工作区
- --soft 保留现有工作区改变,之前的提交的内容复原至暂存区
- --hard 删除现有工作去改变,删除之前的所有提交内容(慎用)
- [HEAD] 为版本号,或者应用head、head^、head~。https://segmentfault.com/a/11...
- git reset [HEAD] <filename> 回退文件
git revert
git revert 命令用于撤销某次提交的改变,并生成一个新的commit记录。
示例:以后提交记录 a -> b -> c -> d,
执行git reset b之后,变为 a -> b -> c -> d -> revert b执行git reset head之后,变为 a -> b -> c -> d -> revert d
常用命令
- 革除本地改变 git reset head --hard
近程回退
- git reset [HEAD] --hard && git push --force
- git revert [HEAD] && git push