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

相关推荐
架构技术专栏4 小时前
Agent 工具调用:从工具声明到执行反馈
前端·人工智能·后端
别动我齐刘海5 小时前
C++ 工程化学习
java·linux·前端·c++·学习·机器学习·机器人
码事漫谈5 小时前
你让AI干的活,它可能只干了十分之一——而你根本看不出来
后端
Wx-bishekaifayuan5 小时前
express皖美特色农产品网售系统53118-计算机课程设计、毕业设计
人工智能·spring boot·后端·python·课程设计·express·旅游
志尊宝6 小时前
Vue3 零基础每日笔记(071):暗黑模式与主题切换——CSS 变量 + Element Plus 暗黑方案
前端·css·笔记·vue·html·前端开发·软件开发
Wx-bishekaifayuan6 小时前
springboot汉中旅游服务平台41442-计算机课程设计、毕业设计
spring boot·后端·python·django·课程设计·express·旅游
WeiXin_DZbishe6 小时前
基于springboot城市公交实时运营与调度系统-计算机毕设 附源码【课程设计】66173
java·vue.js·spring boot·后端·python·php·课程设计
刘发财6 小时前
前端如何生成10000页PDF文件?
前端·javascript·开源
WeiXin_DZbishe7 小时前
基于Springboot+AI的kuall音乐广场的设计与实现-计算机毕设 附源码【课程设计】12715
vue.js·人工智能·spring boot·后端·python·php·课程设计
A接拉起0077 小时前
2026 年 JavaScript 开发者需要了解的知识
前端·javascript·后端