相信很多同学在刚开始接触团队协作开发时,都会使用 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...

什么是代码搁置与恢复?
你可以把 '搁置(Stash)' 想象成一个临时储物柜。
当你需要暂时离开当前的工作(比如去修复 Bug),但手头的代码还没写完、不想提交时,你就可以使用这个功能:
- 搁置:将你当前所有未提交的代码(包括新增、修改、删除的文件)打包成一个'包裹',安全地存放到这个'储物柜'里。完成这个操作后,你的工作区会变得非常干净,回到最后一次提交时的状态。这时,你就可以放心地切换到任何其他分支了。
- 恢复:当你处理完其他事情(比如修完 Bug),回到原来的分支时,再从这个'储物柜'里把之前的'包裹'取出来,你所有的代码就会原封不动地恢复回来,可以继续你的开发。
它的核心作用就是:
- 保存工作现场:在不提交不完整代码的前提下,暂存你的工作进度。
- 实现分支纯净切换:确保你切换到另一个分支时,工作区是干净的,不会污染其他分支。
- 提升效率与安全性:避免手动备份代码的麻烦,也杜绝了误提交半成品代码的风险。
