Git reset
通过Git rest 命令实现版本回退
第一步
通过提交记录找到要回退的版本号
git reflog复制代码
c920c31 HEAD@{4}: commit: fix unit test bugc43a105 HEAD@{5}: commit: proxy request param valued2d8134 HEAD@{6}: commit: add proxy http request addressaca04dd HEAD@{7}: commit: add unit testf6f9b44 HEAD@{8}: commit: disable eureka in test envc7ddf92 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 d2d8134c920c31 (origin/test) HEAD@{2}: commit: fix unit test bugc43a105 HEAD@{3}: commit: proxy request param valued2d8134 HEAD@{4}: commit: add proxy http request addressaca04dd 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的内容。