2.8 KiB
2.8 KiB
能,而且可以非常灵活地在多个分支上重复使用。
Git 的 Stash(贮藏)功能可以把它想象成一个“代码剪贴板”,里面的内容和“创建”它的那个分支早已没有了绑定关系,可以随意粘贴到任何其他分支上。
🎯 核心:使用 git stash apply
要在别的分支提取,关键就是使用 git stash apply 命令,而不是 pop。
apply vs pop 的区别:
| 命令 | 恢复后 | 适用场景 |
|---|---|---|
git stash apply |
Stash 内容保留在堆栈中 | 需要将同一份修改应用到多个分支,对代码改动进行交叉测试 |
git stash pop |
恢复后,对应的 Stash 会被删除 | 适合只想把代码“移动”到另一个分支,不需要再保留这份修改的场景 |
🧭 操作指南:一份 Stash 在多分支间复用
-
保存当前工作:
# 建议添加描述,方便日后识别 git stash push -m "进行中但没有完成的功能X" -
应用到目标分支:
# 切换到你要应用修改的分支 git checkout 目标分支名 # 将 Stash 中的修改应用过来 git stash apply # 如果本地有多个 Stash,用以下命令查看列表, # 再用 git stash apply stash@{n} 应用特定的一个 git stash list执行后:代码改动会出现在当前分支的工作区,
git stash list里原来的记录还在,意味着你可以去下一个分支继续执行git stash apply。 -
(可选)应用完成后清理:当所有需要的分支都应用完毕,不再需要这份 Stash 时,可以手动清理掉:
git stash drop stash@{0}
⚠️ 可能遇到的问题及解决方案
问题:应用时产生合并冲突 当目标分支的代码与你存储的内容差异较大,导致 Git 不知道如何自动合并时,就会出现冲突。
解决方案:冲突的产生是正常现象,手动处理即可。
- 找到冲突:Git 会告诉你哪些文件冲突并暂停应用。
- 手动解决:打开冲突文件,编辑代码,保留你需要的部分(通常删除
<<<<<<<,=======,>>>>>>>这些标记)。 - 告知 Git:解决后保存文件,并执行
git add <冲突文件名>。 - 完成应用:无需额外提交,
add命令后,Stash 的应用即告完成。
🚀 其他常用管理命令
- 查看所有 Stash:
git stash list。 - 从 Stash 直接创建新分支:
git stash branch <新分支名> stash@{0}。这会将你的 Stash 恢复到一个新的独立分支,在复杂改动时特别好用。 - 存储未跟踪的文件:
git stash -u。 - 清理所有 Stash:
git stash clear。