参考链接: 如何在 Git 里撤销(几乎)任何操作
撤销一个“已公开”的改变
方法: git revert <SHA>
重置“本地的”修改
方法: git reset <last good SHA> 或 git reset --hard <last good SHA>
在撤销“本地修改”之后再恢复
方法: git reflog 和 git reset 或 git checkout
$ git revert
描述:
dev_1 远程分支, 现在要撤销最后一个 commit, 即回退到上一个 commit.
操作:
选中要撤销的那个 commit, 右击选中"提交回滚".
本地分支 dev_1 撤销了 commit, 然后推送到远端.
So, 该操作可以撤销远程分支.
$ git reset
描述:
dev_1 远程分支, 现在要撤销最后一个 commit, 即回退到上一个 commit.
操作:
选中要回退到的那个 commit, 右击选中"Reset dev_1 to this commit", 然后选择使用模式, 此处选择"强行合并”.
本地分支 dev_1 回退到上一个 commit, 但远程 dev_1 并没有变化.
So, 该操作不能回退远程分支.
使用模式介绍:
http://www.cnblogs.com/kidsitcn/p/4513297.html
软合并 (soft) : 本地源码不改变
混合合并 (mix) : 本地源码不改变
强行合并 (hard) : 本地源码改变
git reset --soft
git reset --mixed
git reset --hard
git reset --hard HEAD^ //回退到上个版本
git reset --hard HEAD^^ //回退到上上个版本
git reset --hard HEAD~100 //回退到前100个版本
git reset --hard 版本号 //回退到指定版本