01
项目开发中,时常会遇到这样一种情况,代码已经commit(非push)上去了,但此时发现有误,不想提交了,如何回滚?
这点对于新手git的开发者还是比较陌生的。
今天和大家分享这个知识点,如果你对git用法很熟练,请跳过。
首先我们来看还没有commit任何代码的push界面:
然后我们随便修改一份文件,我这里修改MainActivity.java的内容,且执行了commit操作:
如果这时候我们发现刚才commit的有误,不想提交了,想对其进行回滚,如何进行revert commit了。
通过选中工程(或是直接选择MainActivity.java文件),点击右键,在弹出的列表中选择Git-->Repository-->Reset HEAD
其中
Git Root:表示要revert的目录
Current Branch:当前分支branch
Reset Type:
Soft:选择这个模式意思是仅仅撤销commit而已,不影响本地的任何文件,也不影响(index)缓存区的任何文件。
Hard:不仅撤销commit的内容,还将本地的文件指向commit前的版本,同时index也会指向commit前的版本。
Mixed:回滚index,其余的保持不变。
如果把HEAD后面加个“~1”,这里的数字代表次数,比如commit了三次, 1,就是回滚最后一次提交的,2,就是后两次提交的一起回滚了。
官方文档是这样描述的:Resets the index but not the working tree (i.e., the changed files are preserved but not marked for commit) and reports what has not been updated. This is the default action.
Validate:当前会影响到的文件有哪些,具体是什么。
当我们执行下soft模式的,执行完成后,看下图,刚才我们commit的记录已经没有了:
如果你不喜欢可视化的,习惯用命令行处理,命令行实现也是一样的:git reset [--soft | --mixed [-N] | --hard] HEAD~X
其中X:代表次数。
希望对你学习有所帮助
【END】
往期精选推荐
感谢生命里那位从不轻易放弃的自己
月薪3000,请不要跟我谈狼性文化,谈情怀
这座城市很炎热,孤单的人总是晚回家
分享职场生活、职场攻略、领导同事相处技巧和创业资源
更多精彩内容,请长按识别关注