实战场景教程

任务做到一半,如何安全地切换去改 Bug?

1. 问题的场景

想象一下这个画面:你正在一个新功能分支上奋笔疾书,代码写得正嗨,突然老板冲过来说:“线上有个紧急 Bug,必须马上修复!”

这时候你的工作区是“脏”的,既不能提交(功能没做完),也不能直接切换分支(Git 会阻止你)。怎么办?这就是 git stash 登场的完美时机。

2. 什么是 Stash?

git stash 就像一个“魔法口袋”。它会帮你做两件事:

  1. 将你当前所有已修改但未提交的代码(包括暂存区和工作区的修改)打包成一个“临时储藏”。
  2. 然后,将你的工作区恢复到上一次提交时的干净状态。

这样,你就可以毫无顾虑地切换到其他分支去修复 Bug 了。

3. 操作步骤

第一步:把修改藏起来

在你的功能分支上,直接运行:

git stash
# 或者,给这次储藏加个说明,方便以后识别
git stash save "正在开发用户认证功能"

运行后,你会发现你的工作区变干净了,就像什么都没发生过一样。

第二步:去修复 Bug

现在,你可以安心地切换到主分支,创建一个修复 Bug 的新分支,然后开始工作:

git switch main
git pull
git switch -c fix/urgent-bug
# ... 开始修复 Bug ...

当你修复完成、提交并合并了 Bug 分支后,就可以回到之前的工作了。

第三步:把代码拿回来

首先,切回你之前正在开发的功能分支:

git switch feature/user-authentication

然后,用下面的命令把“魔法口袋”里的代码取回来,并恢复到你的工作区:

git stash pop

pop 命令会做两件事:恢复代码 + 删除这条储藏记录。一切都回来了,你可以继续之前未完成的工作了!

小提示: 如果你只想恢复代码但保留储藏记录,可以使用 git stash apply。你可以用 git stash list 查看所有储藏,用 git stash drop <stash_id> 来删除指定的储藏。