Git reset
通过Git rest 命令实现版本回退
第一步
通过提交记录找到要回退的版本号
git reflog
c920c31 HEAD@{4}: commit: fix unit test bug
c43a105 HEAD@{5}: commit: proxy request param value
d2d8134 HEAD@{6}: commit: add proxy http request address
aca04dd HEAD@{7}: commit: add unit test
f6f9b44 HEAD@{8}: commit: disable eureka in test env
c7ddf92 HEAD@{9}: pull: Merge made by the 'recursive' strategy.
f96380b HEAD@{10}: checkout: moving from proxyOpt to test
第二步
通过git reset 命令回退版本
git reset --hard d2d8134
d2d8134 HEAD@{1}: reset: moving to d2d8134
c920c31 (origin/test) HEAD@{2}: commit: fix unit test bug
c43a105 HEAD@{3}: commit: proxy request param value
d2d8134 HEAD@{4}: commit: add proxy http request address
aca04dd HEAD@{5}: commit: add unit test
其中,。而如果加上-–hard参数,则缓冲区中不会存储这些修改,git会直接丢弃这部分内容。
第三步
推送到远程分支,可以使用 git push origin test --force 强制将分区内容推送到远程服务器。
git push origin test --force
reset 和revert区别
- git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit。
- git reset 是把HEAD向后移动了一下,而git revert是HEAD继续前进,只是新的commit的内容和要revert的内容正好相反,能够抵消要被revert的内容。