Android Studio如何回滚已经commit(提及到本地)的代码

转自:Android Studio如何回滚已经commit的代码

今天,在修改代码的时候,因为不注意,把不需修改分支的代码修改并提交的本地了,在将要提交到远程仓库这千钧一发之际发现分支不对,于是就想把已经commit(提及到本地)的代码回滚到本地改动。有问题,问“度娘”嘛,于是转了上述文章,正文:

快速解决:

1.首先,鼠标右键项目-->Git-->Reponsitory-->Reset HEAD
2.执行下面的操作,Reset Type选择 Soft 表示保存所有的提交操作,^表示退回到上一次提交。

图1

详细解决:

对于commit(不是 push)的代码如何回滚,这块对于刚转到 git 的开发者还是比较陌生的。今天我来说下这块的内容:
按照惯例,先上图,下图是还没有 commit 任何代码的 push 界面,这个时候是没有 commit 任何内容的:


然后我修改了 string.xml 的内容,并且执行了commit 操作:


接下来就要说如何进行revert commit 了,通过选中工程,点击右键,在弹出的列表中选择 Git-->Repository-->Reset HEAD...,之后出现如下图所示:


这边对上图进行分析:

  • Git Root:选择你要revert 的目录。
  • Current Branch:你当前在哪个branch

Reset Type:

  • Soft:选择这个模式意思是仅仅撤销 commit 而已,不影响你本地的任何文件,也不影响(index )缓存区的任何文 件。
  • Hard:不仅撤销 commit 的内容,还将本地的文件指向你 commit 前的版本,同时index也会指向 commit 前的版本。
  • Mixed:这个模式从我个人角度来看其实还是有点模糊的。从我的角度理解就是只是回滚 index,其余的都不变。

  • To Commit:填写 HEAD 后面加个 “~1”

但是这边跟大家说下,如果你把 `HEAD` 后面加个 `“~1” `,这里的数字代表的是次数,
比如你` commit` 了三次, 你写 `1` ,就是回滚最后一次提交的,
如果是 `2` ,就是后两次提交的都回滚。这时候你会发现它的功能和 `soft `这个模式一样了。

官方说法: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:这个选项是看当前会影响到的文件有哪些,具体影响是什么。
    [图片上传中...(image.png-27c455-1547462776066-0)]

我这边执行下 soft 模式的,执行完成后,刚 commit 的记录已经没了,并且曾经 commit 的文件,已经回到本地改动。

命令行解决:
git reset [--soft | --mixed [-N] | --hard] HEAD~X   X:代表次数
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Git 基础 基本原理 客户端并不是只提取最新版本的文件快照,而是把代码仓库完整的镜像下来。这样一来,任何一处协同...
    __silhouette阅读 16,144评论 5 147
  • Git 命令行学习笔记 Git 基础 基本原理 客户端并不是只提取最新版本的文件快照,而是把代码仓库完整的镜像下来...
    sunnyghx阅读 9,467评论 0 11
  • git常用命令 GIT常用命令备忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章阅读 12,794评论 1 26
  • 傍晚我看到一只只鸟儿在天际划过。 有的鸟体型很大,翅膀呈飞镖形,通体白色,白的没有一丝杂乱的颜色。他们只是偶尔扇动...
    roxann阅读 1,387评论 1 0
  • 清晨,妈妈煮好了粥,乘到了碗里,煎了三个荷包蛋放在三个盘子上,摆在餐桌上,等做完这些事情后,便开始叫我起床,睡眼懵...
    杨曦月阅读 3,043评论 0 3

友情链接更多精彩内容