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