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

对于commit(不是push)的代码如何回滚,这块对于刚转到git的开发者还是比较陌生的。今天我来说下这块的内容:

按照惯例,先上图,下图是还没有commit任何代码的push界面,这个时候是没有commit任何内容的:


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


接下来就要说如何进行revert commit了,通过选中工程,点击右键,在弹出的列表中选择Git-->Repository-->Reset HEAD...,有些人可能会说我右键弹出来的列表中没有发现有Git的选项,这个可以配置的,请戳这:

 

Android Studio右键选项中没有Git?


这边对上图进行分析:

Git Root:选择你要revert的目录

Current Branch:你当前在哪个branch

Reset Type: 

Soft:选择这个模式意思是仅仅撤销commit而已,不影响你本地的任何文件,也不影响(index)缓存区的任何文 件。

Hard:不仅撤销commit的内容,还将本地的文件指向你commit前的版本,同时index也会指向commit前的版本。

Mixed:这个模式从我个人角度来看其实还是有点模糊的。从我的角度理解就是只是回滚index,其余的都不变。

      但是这边跟大家说下,如果你把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:这个选项是看当前会影响到的文件有哪些,具体影响是什么。

我这边执行下soft模式的,执行完成后,看下图,刚commit的记录已经没了:



当然你想用命令行也是一样的,

git reset [--soft | --mixed [-N] | --hard] HEAD~X   X:代表次数

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 如果已经代码push到远程仓库,需要使用git revert命令来回滚代码。具体步骤如下: 1. 使用git log命令查看需要回滚commit的hash值。 2. 使用git revert命令回滚代码,命令格式为:git revert <commit hash>。 3. 回滚后,需要将代码push到远程仓库,使用git push命令即可。 需要注意的是,回滚代码会创建一个新的commit,不会直接删除之前的commit。因此,如果需要完全删除之前的commit,可以使用git reset命令。但是,如果已经代码push到远程仓库,不建议使用git reset命令,因为会破坏远程仓库的commit历史记录。 ### 回答2: 在Git中,回滚(Revert)一个已经提交(Push)的代码的操作非常常见,这种操作可避免由于人为错误或其他意外因素导致的代码错误,而在团队协作开发中起到重要的作用。 Git的回滚操作有两种方式:一种是通过提交新的代码回滚,另一种是通过回归历史版本来回滚。 首先,介绍第一种方式。当在团队协作开发中,一个已经push的代码可能会引起其他团队成员的不满,这时可以先新建一个分支,然后通过提交新的代码回滚。 1.新建分支 在本地Git的分支中新建一个分支,或者在远程Git平台中新建一个分支。 2.回滚代码 在新建的分支中,使用Git的Revert命令回滚代码。该命令会新建一个提交来撤销前面的提交,但不会更改原来的提交记录。 3.Push分支 将新建的分支Push到远程Git平台中。 第二种回滚方式,即回归历史版本。这种方式非常适合制定一个严格的回滚计划,可以先找到需要回滚的版本号,然后使用Git的Reset命令回滚代码,并将回滚后的代码Push到远程Git平台。 但需要格外注意,使用Reset命令回滚代码会清除之前的提交记录,所以在团队协作开发中需要特别小心,建议在使用该方式时,先单独与其他团队成员进行确认与讨论。 总之,回滚已经push的代码在团队协作中非常重要,可避免代码错误,增加开发效率。但在回滚代码之前,需要根据实际情况选择合适的方式来操作,以避免不必要的问题。 ### 回答3: 在git中进行代码回滚需要根据情况采取不同的方法,如果代码已经push到远程仓库,那么回滚的方法也有所不同。以下是回滚已经push代码的步骤: 1. 使用git log命令查看commit记录,找到需要回滚commit的哈希值。 2. 使用git reset命令回滚代码。如果要回滚到上一个commit状态,可以使用git reset HEAD^命令,如果要回滚到某个具体的commit状态,可以使用git reset <commit-hash>命令。 3. 回滚后,使用git push -f命令强制推送代码到远程仓库覆盖之前提交的版本。需要注意的是,强制推送会覆盖远程仓库里的代码,可能会引起冲突,因此要谨慎操作。 4. 如果其他人已经从远程仓库拉取了代码回滚后需要将变更告知他们,让他们重新拉取代码和进行合并。 总之,在git中回滚代码需要谨慎操作,尤其是在已经push到远程仓库的情况下。要时刻谨记备份代码,避免代码丢失和不必要的麻烦。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值