Git Stash:临时保存和切换工作状态的利器

Git是我们日常工作中不可或缺的版本控制系统。它提供了许多强大的功能,其中之一是Git Stash(暂存)。Git Stash可以帮助我们在切换分支或保存未完成的工作时,临时保存当前的修改,以便稍后重新应用。本文将介绍Git Stash的用途、常见场景以及如何使用该功能。

Git Stash的应用

Git Stash的用途非常广泛,特别适用于以下几种常见场景:

  1. 分支切换: 当你正在进行某个分支上的开发工作,但需要紧急修复其他分支的bug或进行其他任务时,你可以使用Git Stash来保存当前分支上的修改。这样,你可以切换到其他分支,完成紧急任务后再回到原来的分支,并通过恢复Stash来重新应用你之前保存的修改。
  2. 临时保存工作状态: 有时候你可能需要中断当前的工作,但又不想提交未完成的修改。使用Git Stash可以将你的修改临时保存起来,以便稍后继续工作。这在你需要暂时切换到其他任务、参与会议或处理其他紧急问题时非常有用。
  3. 解决代码冲突: 当你在合并分支或拉取远程更新时遇到代码冲突,你可以使用Git Stash来保存当前的修改,并将工作区恢复到干净的状态。然后你可以解决冲突,再重新应用你之前保存的修改。

Git Stash的使用

下面是一些常用的Git Stash命令:

  • git stash:保存当前工作区的修改,但不保存已提交的修改;
  • git stash save "message":保存当前工作区的修改,并添加一条说明信息;
  • git stash list:列出所有储藏记录;
  • git stash apply [stash@{n}]:应用某个储藏记录,并将其从储藏列表中删除;
  • git stash pop [stash@{n}]:应用某个储藏记录,并将其从储藏列表中删除,同时恢复当前工作目录到储藏时的状态。

假设我们现在修改index.html文件,并将index.html文件git add index.html 提交到暂存区,再执行git ls-files 查看暂存区的文件结果如下图:

现在我们临时保存index.html修改状态git stash,储存记录中就会多一条记录:

当然,工作中不能这么随意,不然记录变多不便于找到自己想恢复的记录,通常使用git stash save "message"命令:

恢复保存的修改有两种常见的方法可以恢复保存的修改。一种是使用git stash apply命令,它会重新应用最新的stash,并保留stash的副本。另一种是使用git stash pop命令,它会应用最新的stash,并将其从stash列表中删除。

如果你有多个stash,你可以通过git stash apply stash@{n}命令来应用特定的stash,其中n是stash的索引号。

一旦你不再需要某个stash,你可以使用git stash drop命令将其从stash列表中删除。

增强 Git 的VS Code 扩展

我想多数人不喜欢在黑白的窗口敲命令,我们可以通过VS Code 扩展来增强使用 Git,我推荐自己常用的一个Git插件为GitLens,安装如下图:

安装后,我们就能直观地看到Git Stash所有储藏记录。

这样,添加保存临时工作状态,也就是鼠标点点的事情。

还有其他的操作功能,不过多描述,大家安装后稍微点点都能学会。

总结

Git Stash是一个强大而灵活的工具,可帮助开发人员在切换分支、保存临时工作状态和解决代码冲突时更加高效地管理修改。通过合理利用Git Stash,我们可以处理多任务开发、合并变更和处理紧急情况,从而提高工作效率并确保代码的完整性。掌握Git Stash都是一个值得推荐的技巧,它能为你的版本控制流程带来便利和灵活性。

如果我的文章对你有帮助,您的👍就是对我的最大支持^_^。

关注公粽号【凌览社】回复"666",拉您进【人类高质量前端交流群~】

更多文章链接:linglan01.cn/about

相关推荐
Ticnix13 分钟前
ECharts初始化、销毁、resize 适配组件封装(含完整封装代码)
前端·echarts
纯爱掌门人16 分钟前
终焉轮回里,藏着 AI 与人类的答案
前端·人工智能·aigc
砍材农夫17 分钟前
threadlocal
后端
twl20 分钟前
OpenClaw 深度技术解析
前端
崔庆才丨静觅23 分钟前
比官方便宜一半以上!Grok API 申请及使用
前端
星光不问赶路人31 分钟前
vue3使用jsx语法详解
前端·vue.js
神奇小汤圆33 分钟前
告别手写HTTP请求!Spring Feign 调用原理深度拆解:从源码到实战,一篇搞懂
后端
天蓝色的鱼鱼35 分钟前
shadcn/ui,给你一个真正可控的UI组件库
前端
布列瑟农的星空38 分钟前
前端都能看懂的Rust入门教程(三)——控制流语句
前端·后端·rust
Mr Xu_43 分钟前
Vue 3 中计算属性的最佳实践:提升可读性、可维护性与性能
前端·javascript