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


01

 

项目开发中,时常会遇到这样一种情况,代码已经commit(非push)上去了,但此时发现有误,不想提交了,如何回滚?

 

这点对于新手git的开发者还是比较陌生的。

 

今天和大家分享这个知识点,如果你对git用法很熟练,请跳过。

 

首先我们来看还没有commit任何代码的push界面:

 640?wx_fmt=jpeg

然后我们随便修改一份文件,我这里修改MainActivity.java的内容,且执行了commit操作:

 

640?wx_fmt=png

如果这时候我们发现刚才commit的有误,不想提交了,想对其进行回滚,如何进行revert commit了。


通过选中工程(或是直接选择MainActivity.java文件),点击右键,在弹出的列表中选择Git-->Repository-->Reset HEAD

 640?wx_fmt=png

 

其中

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的记录已经没有了:

 

640?wx_fmt=jpeg


如果你不喜欢可视化的,习惯用命令行处理,命令行实现也是一样的:

 git reset [--soft | --mixed [-N] | --hard] HEAD~X   


其中X:代表次数。


 希望对你学习有所帮助

【END】


往期精选推荐


感谢生命里那位从不轻易放弃的自己


月薪3000,请不要跟我谈狼性文化,谈情怀


这座城市很炎热,孤单的人总是晚回家



640?wx_fmt=jpeg

分享职场生活、职场攻略、领导同事相处技巧和创业资源

更多精彩内容,请长按识别关注

### 回答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、付费专栏及课程。

余额充值