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

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

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

快速解决:

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

2139461-8ea0a16d6e81a1e8.png
图1

详细解决:

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

2139461-0987fbdb51595fea.png

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

2139461-13d8e44fe8202932.png

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

2139461-875f6b56b70ff5fc.png

这边对上图进行分析:

  • 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:代表次数

猜你喜欢

转载自blog.csdn.net/weixin_33674976/article/details/87048433