日常开发中,经常会遇到在当前分支开发到一半,但是需要Checkout上个版本解决bug或调查问题的情况。这个时候,我们是将代码提到Push远程?还是直接Rollback?

最理想的做法,就是将当前的开发分支修改的代码暂存起来,然后将开发分支恢复到最初的状态,再切换到我们需要的分支去处理问题,处理完成后,我们还可以切换到开发分支上,将暂存的代码恢复回来,继续开发。

在IDEA中,就有一个这样的功能,叫做Shelve Changes。Shelve的中文意思是“搁置;将。。。放到架子上”,看到它的中文含义,相信读者会更加明白它的作用。

Shelve使用起来很简单,在IDEA下方的Git面板中(IDEA 2020中是Git,2020版本之前是VersionControl),有一个部分叫做Local Changes,这里面是我们在当前分支做的所有的修改,如下:
IDEA_Shelve代码搁置与恢复-LMLPHP

在Local Changes中,我们可以自行选择需要搁置的代码(可以多选),然后右键选择“Shelve Changes”,如下:
IDEA_Shelve代码搁置与恢复-LMLPHP

在弹出的Shelve Changes窗口中,需要填写一下搁置备注(方便以后确认需要恢复的代码,很贴心的功能),最后点击【Shelve Changes】按钮即可将代码搁置起来,如下:
IDEA_Shelve代码搁置与恢复-LMLPHP

代码搁置完成后,我们可以在Git面板中的Shelf中,查看被搁置起来的代码,如下:
IDEA_Shelve代码搁置与恢复-LMLPHP

当开发分支的已修改代码都被搁置的时候,就可以直接切换分支了,不需Push或Rollback了。
如果想要将被搁置的代码恢复,只需要选中被搁置的代码,然后右键选择“UnShelve Changes”即可,再弹出的“UnShelve Changes”窗口中,直接点击【UnShelve Changes】按钮即可恢复代码,如下:
IDEA_Shelve代码搁置与恢复-LMLPHP
IDEA_Shelve代码搁置与恢复-LMLPHP

当然,我们也可以直接将被搁置的代码删除掉,如下:
IDEA_Shelve代码搁置与恢复-LMLPHP

但是如果搁置代码没有恢复,那么被删除的搁置代码不就没了吗?难道还要重新开发?IDEA贴心就在于,被误删除的搁置代码可以在“Recently Deleted”中找到并恢复,绝对的手残友好党...如下:
IDEA_Shelve代码搁置与恢复-LMLPHP
IDEA_Shelve代码搁置与恢复-LMLPHP

当然,在“Recently Deleted”还可以再一次进行删除操作,这次删除,可就真的删除了,找不回来的...如下:
IDEA_Shelve代码搁置与恢复-LMLPHP

以上就是IDEA中很实用的Shelve功能的一个使用介绍,有问题可以留言,看到必回。

08-22 05:12