git stash 的使用

git stash 是 Git 中一个非常实用的功能,用于临时保存和恢复工作目录中尚未提交的修改。当你需要切换分支、处理紧急修复,但又不想提交当前未完成的工作时,git stash 就能派上用场。

基本用法

1. 暂存当前修改
git stash save "可选的描述信息"  # 保存当前工作区和暂存区的修改
# 或简化写法(Git 2.13+)
git stash
  • 效果:将工作区和暂存区的修改保存到栈中,并恢复工作目录到最后一次提交的状态。
2. 查看暂存列表
git stash list  # 显示所有暂存记录
# 输出示例:
# stash@{0}: WIP on master: abc1234 添加新功能
# stash@{1}: On feature: xyz5678 修复样式问题
3. 恢复暂存的修改
git stash apply       # 恢复最近一次暂存(stash@{0})
git stash apply stash@{1}  # 恢复指定暂存记录(如第2条)
  • 区别apply 恢复后保留暂存记录,pop 恢复后删除暂存记录。
4. 恢复并删除暂存记录
git stash pop         # 恢复并删除最近一次暂存
git stash pop stash@{2}  # 恢复并删除指定暂存
5. 删除暂存记录
git stash drop stash@{0}  # 删除指定暂存
git stash clear           # 删除所有暂存

进阶用法

只暂存工作区(不暂存已添加到暂存区的修改)
git stash --keep-index  # 保留暂存区的修改
只暂存部分文件
git add file1.js file2.js  # 先将需要保留的文件添加到暂存区
git stash --patch         # 交互式选择需要暂存的修改
创建分支基于暂存
git stash branch new-feature  # 从最近一次暂存创建新分支并恢复修改

常见场景

场景1:切换分支前保存工作
# 当前在 feature 分支工作,未完成但需要切换到 master
git stash       # 保存当前修改
git checkout master
# 处理完 master 后回到 feature
git checkout feature
git stash pop   # 恢复修改
场景2:紧急修复(Hotfix)
# 在开发新功能时收到紧急修复请求
git stash       # 保存当前工作
git checkout master
git checkout -b hotfix
# 修复完成并提交
git checkout master
git merge hotfix
git branch -d hotfix
# 回到开发分支
git checkout feature
git stash pop   # 继续开发

注意事项

  1. 暂存记录存储在本地仓库:不会推送到远程仓库,其他开发者无法访问。
  2. 冲突处理:如果恢复暂存时发生冲突,需要手动解决冲突。
  3. 查看暂存差异
    git stash show        # 查看最近一次暂存的摘要
    git stash show -p     # 查看完整补丁内容
    
  4. 长期保存建议:如果需要长期保留修改,建议创建分支并提交,而非依赖 stash

替代方案

  • 创建临时提交
    git commit -m "WIP: 临时提交"  # 临时提交
    git reset --soft HEAD~1       # 需要恢复时撤销提交
    

git stash 是一个高效的临时工作管理工具,掌握它能让你的 Git 工作流更加流畅。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值