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

相关推荐
黎金安几秒前
前端第二次作业
前端·css·css3
啦啦右一2 分钟前
前端 | MYTED单篇TED词汇学习功能优化
前端·学习
半开半落7 分钟前
nuxt3安装pinia报错500[vite-node] [ERR_LOAD_URL]问题解决
前端·javascript·vue.js·nuxt
customer0822 分钟前
【开源免费】基于SpringBoot+Vue.JS医院管理系统(JAVA毕业设计)
java·vue.js·spring boot·后端·spring cloud·开源·intellij-idea
2402_8575893632 分钟前
SpringBoot框架:作业管理技术新解
java·spring boot·后端
理想不理想v34 分钟前
vue经典前端面试题
前端·javascript·vue.js
不收藏找不到我35 分钟前
浏览器交互事件汇总
前端·交互
Winston Wood1 小时前
一文了解git TAG
git·版本控制
YBN娜1 小时前
Vue实现登录功能
前端·javascript·vue.js