赞
踩
我们代码平时在IDEA开发完成后,提交代码到远程仓库的流程为:
我们在提交代码到远程仓库的时候难免会发生提交了错误代码,要回滚到上个版本的情景;根据上面的流程我整理了一下三个场景的解决方案。
右键选中项目,GIt->Repository->Reset Head
点击Reset(ResetType后面会补充解释)
commit到本地仓库的版本记录会在version controller的log中查看到,右键选中你要回退的那个版本,选择Undo Commit
点击ok
回退完成!
在version controller的Local Change中可以查看已经回退撤回的代码
我在远程仓库中提交了两次代码,姑且称他们为版本2、版本1
把代码回退到版本1,并删除仓库的版本2代码和记录,步骤为:
a、把本地源码回退到版本1的状态
粘贴版本1的Revision Number
打开Reset HEAD
把刚才复制的revision number粘贴到 “To Commit”处,点击Reset (ResetType文章末尾处介绍)
b、删除远程仓库中版本2的代码
打开version controller的log页面我们会发现版本2的代码并没有从远程仓库中删除!
我们刚才所做的步骤仅仅是将本地源码回退到了版本1的状态(版本2的代码在Git索引、本地仓库都已经回退删除了,但本地源码还存在,这跟我们选的Reset Type:Mixed有关)
这个时候我们要把本地仓库目前的代码版本强制提交到远程仓库,在命令行运行: git push -f
再查看log,版本2代码已经从远程仓库删除
Reset Head中三种Reset Type类型:
Mixed
(默认):它回退到某个版本,本地会保留源码,回退commit和index信息,若要提交重新commit。
soft
: 回退到某个版本,只回退了commit的信息,不会恢复到index file一级,若要提交重新commit。
Hard
:彻底回退到某个版本,本地的源码也会变为上一个版本的内容。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。