Git 版本回退

1,535 阅读1分钟

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的内容。