相信很多同学在刚开始接触团队协作开发时,都会使用 Git 进行代码管理。而在使用强大的 IntelliJ IDEA 时,很可能遇到过跟我一样的问题:你正在 feature-A 分支上热火朝天地开发一个新功能,代码写了一半,突然有同事跑过来说:'master 分支上有个紧急 Bug 要修复'在切换分支去 master 之后发现,刚才在 feature-A 分支上写的那一堆未提交的代码,原封不动地跟着你跑到了**master 分支上。会导致当你修改完 Bug 将代码提交回 master 的时候,发现要在所有未提交的代码中选择出与 master 的 Bug 有关的代码,太复杂而且容易搞错。**
如何在 IDEA 中解决?—— 使用'搁置'功能
第一步:搁置当前更改
- 在 IDEA 中,确保你当前在
feature-A分支。
点击 Create Stash(也就是托管更改)按钮。完成后,你会发现本地所有未提交的更改都消失了,工作区变得和最后一次提交时一模一样。

这时会弹出一个对话框,让你为这次搁置写一个描述信息(比如'开发用户登录功能 - 半成品')。这有助于你以后分辨多个暂存的包裹。

在项目根目录上,右键点击 -> 选择 Git -> Repository -> Stash Changes...
或者,你也可以点击顶部菜单栏的 VCS -> Git -> Stash Changes...

第二步:放心切换分支
现在,你的工作区非常干净,可以毫无顾虑地切换到 master 分支了:
git checkout master
然后,安心地修复你的 Bug,修复完成后正常提交。
第三步:恢复搁置的更改
- 当你修完 Bug,准备继续开发
feature-A的功能时,首先切换回feature-A分支:
git checkout feature-A
- 在弹出的对话框中,你会看到一个列表,选择你刚才创建的那一个(可以通过你写的描述信息来识别)。
- 点击 Apply Stash 按钮。
同样,在项目根目录上右键点击 -> Git -> Repository -> Unstash Changes...


