前言

        今天在写一个业务模块的时候不小心将commit的代码进行了keep操作,导致完成的整个模块的代码都消失了,当时把我整懵逼了。随后就去网上搜索相关解决办法教程,可是半天也找不到解决办法。于是就去问了通义灵码才解决这个问题。

下面就先讲讲commit之后但未push到远程仓库的代码进行撤销的操作吧

commit之后但未push到远程仓库的代码进行撤销的操作

  1. 找到idea左下方的Git功能并点击40839164ea66491a88d7a44e85db4326.png
  2. 选择Local下面的master,再选择你要退回的版本(这里不要选择当前需要撤回的commit的版本,需要选择的是你想要回退到的版本)ec9c130e71914925b39b1fe84a0b18b9.png
  3. 右击,选择reset current branch to here6725a91c1f894d3e87fcac4fd71a70fd.png
  4. 然后就会出现一个弹窗,弹窗中的四个功能都是不同的操作(千万别选错了,我就是选择keep功能才会出现代码丢失的情况),要慎重(注意,这里说的是慎重)选择自己需要的操作,再点击Reset,就可以撤回提交的commit了。1fed181d67e04f6491c85c708f127edb.png

reset的四个功能

  1. Soft:

    Files won’t change,differences will be staged for commit.
    文件不会更改,不同之处将被暂存,等待commit.(此时,恢复的后的状态新增的文件是绿色,修改的文件是蓝色)
  2. Mixed:

    Files won’t change,differences won’t be staged. (won’t 是 will not的缩写)
    文件不会更改,不同之处将不会被暂存。(此时,恢复的后的状态新增的文件是红色,修改的文件是蓝色)
  3. Hard:

    Files will be reverted to the state of the selected commit.
    Warning:any local changes will be lost.
    文件将被恢复到所选择提交的那个版本的状态.(此时,你所修改的或者是新增的文件都会丢失,所有的文件都是白色)

  4. Keep:

    Files will be reverted to the state of the selected commit.
    but local changes will be kept intact.
    文件将被恢复到所选提交的状态。(目前,测试keep和hard的效果是一样的,这个有待进一步考证)

这里的部分内容转自博客:(看这篇就够了)idea操作git commit后,撤销commit,恢复到提交前的状态_idea git撤销commit到未提交状态-CSDN博客

进行keep操作之后如何恢复

  1. 右键点击项目中的文件或文件夹。
  2. 选择 Local History -> Show History。​​​​​​​12285057af88414d93ad607dd5c281e4.png
  3. 在弹出的窗口中,找到你希望恢复的版本,右键点击并选择 Revert。(之后就大功告成,如释重负了)822d9b5050b94402bf942d9a0546043e.png

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐