实战场景教程
任务做到一半,如何安全地切换去改 Bug?
1. 问题的场景
想象一下这个画面:你正在一个新功能分支上奋笔疾书,代码写得正嗨,突然老板冲过来说:“线上有个紧急 Bug,必须马上修复!”
这时候你的工作区是“脏”的,既不能提交(功能没做完),也不能直接切换分支(Git 会阻止你)。怎么办?这就是 git stash 登场的完美时机。
2. 什么是 Stash?
git stash 就像一个“魔法口袋”。它会帮你做两件事:
- 将你当前所有已修改但未提交的代码(包括暂存区和工作区的修改)打包成一个“临时储藏”。
- 然后,将你的工作区恢复到上一次提交时的干净状态。
这样,你就可以毫无顾虑地切换到其他分支去修复 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>来删除指定的储藏。