【技巧】git stash用的好,切换分支随便搞

简介: 本文详细介绍了 Git 中的 `git stash` 命令,帮助你在切换分支时临时保存未提交的更改。通过实际操作示例,展示了如何使用 `git stash` 的各种命令,如 `save`、`list`、`apply` 等。无论你是初学者还是有一定经验的开发者,都能从中受益。

前言

🍊缘由

git stash不会搞,走到哪里都拉倒

🏀事情起因:

大家好,我是JavaDog程序狗

最近翻看公众号评论时,发现文章【规范】Git分支管理,看看我司是咋整的小伙伴的多条回复:

本狗在回复留言时,发现小伙伴对于切换分支有所疑惑:

本地代码要是修改且未提交,切换分支时本地修改内容咋办

遇到这种问题的小伙伴一定是没有用好git stash,本狗以自我使用角度,解析下git stash的基本用法


🎯主要目标

实现3大重点

1. git stash 是什么
2. git stash 相关使用指令
3. git stash 使用实操

正文

🥦目标分析

一. git stash 是什么

git stash 是 Git 版本控制系统中的一个非常实用的命令
git stash 允许“临时存放”工作区和暂存区中的所有修改,这样你就可以干净地切换到另一个分支去处理其他任务,而不用担心当前的工作进度会被覆盖或丢失。

👽人话情景解释 git stash :

本狗在厨房里忙着做黑暗料理,突然电话响了,是女神说他马上就到。这时候,我不能让女神看到厨房乱七八糟,也不能让半成品的食物和满地垃圾放着不管,那咋办呢?

git stash 就像是我的收纳柜,女神来了,我迅速把所有切好的食材、满地垃圾,收拾整齐,全放置于收纳柜,这样厨房看起来干净整洁,而且送走女神后还能接着做黑料接着舞,不会丢失任何东西,哪怕是一个垃圾。

等你忙完手头的事情,回到原来的工作,你只需运行 git stash pop 或者 git stash apply,你之前的工作就会被“解包”,恢复到你离开时的状态,你可以接着做原来的工作了。

在 Git 中,当你正在修改代码,但突然需要切换去做另一件事情,比如修复一个紧急的 Bug,或者帮助同事解决一个问题,你不想丢失你当前的修改,也不想把这些未完成的修改混进新的工作中去。这时候,git stash 就派上了用场。

你只需要运行 git stash,Git 就会帮你把所有未提交的修改都“打包”起来,放到一个安全的地方(我们称之为 stash),然后让你的工作区变得干净,就像你刚从仓库检出代码一样。

这样,git stash 就像是一个临时的“暂停键”,帮助你管理你的工作流程,保持代码的整洁,同时保证你的工作进度不会丢失。

使用 git stash 命令时,Git 会做以下几件事

  1. 保存修改:Git 会保存工作目录中所有未提交的修改,无论是已暂存的还是未暂存的更改。

  2. 清理工作目录:Git 会将你的工作目录恢复到最近一次提交的状态,清除所有未提交的更改

  3. 压入栈中:保存的更改会被放到一个称为“stash”的特殊存储区域,这个区域实际上是一个类似于堆栈的数据结构,稍后从这里恢复你的工作。


二. git stash 相关使用指令

1.使用 git stash 来暂时存储当前的修改
git stash
2.使用 git stash save "message" 来暂时存储当前的修改,并附上一个备注信息
git stash save "v2.1.1订单需求代码"
3.使用 git stash list 来查看当前所有的stash
git stash list
4.使用 git stash apply 来应用最新的stash
# 应用最新的stash
git stash apply

# 通过git stash list查询后,获取应用指定的stash引用
git stash apply stash@{2}
5.使用 git stash drop 来删除最新的stash
# 删除最新的stash
git stash drop

# 通过git stash list 查询后,删除指定的stash引用
git stash drop stash@{2}
6.使用 git stash pop 来应用最新的stash并且删除
# 通过git stash list 查询后,应用最新的stash并删除
git stash pop
7.使用 git stash clear 来清空所有的stash
# 清空所有的stash
git stash clear
8.使用 git stash show 来查看最新stash的内容
# 查看最新stash的内容
git stash show
9.使用 git stash branch 新分支,从最新的stash创建一个新的分支并应用该stash
# 创建一个新的分支并应用最新的stash
git stash branch new_feature

三. git stash 使用实操

🌰实例

当前分支feature-javadog-v2.1.1-SNAPSHOT-20240703正在开发写了一半,突然线上有紧急bug,需要切出bug分支进行修改问题,咋办?

目前存在的问题是,现在分支开发还没有写完,没法提交,如果切换分支本地代码就会丢失,所以就需要使用git stash命令

1.在开发分支使用git stash save "message" 暂存写了一半代码
git stash save "v2.1.1订单需求代码"

2.修改完bug后切换回当前开发分支,使用git stash list查看暂存记录
git stash list

3.使用git stash apply stash引用号,进行恢复暂存数据
git stash apply 0

4.使用git stash drop stash引用号,进行暂存数据清理
git stash drop 0

以上实际例子出发,展示实际操作用的基础命令,其余命令使用均可参考上述相关使用指令

总结

git stash 是 Git 提供的一个功能,用于临时存储当前工作目录和暂存区中所有未提交的更改。当你需要切换分支或进行其他操作,而又不想丢失当前正在进行的工作时,git stash 可以帮助你将这些更改“打包”并保存起来,以便之后可以恢复到之前的工作状态。

git stash 相关使用指令

git stash: 保存当前所有未提交的更改。
git stash save "message": 同上,但可以添加一条信息来描述此次 stash 的内容。
git stash list: 列出所有已保存的 stash。
git stash apply [stash_ref]: 应用指定的 stash,保留原 stash。
git stash pop [stash_ref]: 应用并删除指定的 stash,默认为最新的 stash。
git stash drop [stash_ref]: 删除指定的 stash。
git stash clear: 删除所有 stash。
git stash show: 显示最新的 stash 的内容。
git stash branch [branch_name]: 创建新分支并应用最新的 stash。


🍯猜你喜欢

文章推荐

【工具】珍藏免费宝藏工具,不好用你来捶我

【插件】IDEA这款插件,爱到无法自拔

【规范】看看人家Git提交描述,那叫一个规矩

【工具】用nvm管理nodejs版本切换,真香!

【项目实战】SpringBoot+uniapp+uview2打造H5+小程序+APP入门学习的聊天小项目

【项目实战】SpringBoot+uniapp+uview2打造一个企业黑红名单吐槽小程序

【模块分层】还不会SpringBoot项目模块分层?来这手把手教你!

目录
相关文章
|
5月前
|
开发工具 git
图解Git——分支的新建与合并《Pro Git》
在Git开发中,新建与合并分支是常见的操作。以实际开发为例:为实现新需求创建分支`iss53`进行开发;遇紧急Bug时,切换至线上分支创建`hotfix`修复并合并回线上分支,再切换回`iss53`继续工作。完成`iss53`后,切换到`master`合并。若出现冲突,使用`git status`查看,手动编辑解决冲突后标记为已解决并提交。图形化工具如`git mergetool`也可辅助解决冲突。
106 9
|
5月前
|
开发工具 git 开发者
图解Git——分支简介《Pro Git》
Git 分支是其核心特性之一,允许开发者从主开发线分离工作,避免干扰主线。传统版本控制系统创建分支效率低,而Git的分支创建和切换非常轻量高效。
255 9
|
4月前
|
开发工具 git 开发者
vscode+git解决远程分支合并冲突
通过这些详细步骤,您可以掌握如何使用VSCode和Git高效地解决远程分支合并冲突,提高开发效率和代码质量。希望这些内容对您的学习和工作有所帮助。
935 86
|
5月前
|
存储 项目管理 开发工具
图解Git——分支开发工作流《Pro Git》
分支开发工作流利用Git的分支功能,支持灵活的项目管理。长期分支如`master`和`develop`分别保存稳定和开发中的代码;短期主题分支用于开发单一特性或修复问题,完成后合并到主分支。此模式确保代码稳定性,支持并行开发、便于审查和灵活调整。建议维护明确的长期分支,保持主题分支短小精悍,并定期清理无用分支。配置上可保护关键分支,遵循命名规范。
201 7
|
5月前
|
存储 缓存 Java
图解Git——远程分支《Pro Git》
远程分支是 Git 中用于管理分布式协作的关键概念。远程引用指向远程仓库中的分支和标签,常用 `git ls-remote` 或 `git remote show` 查看。日常开发中,通常使用远程跟踪分支(如 `origin/main`)与远程分支交互,简化远程仓库状态的管理和使用。远程跟踪分支记录远程分支的状态,但本身只读。
78 6
|
8月前
|
开发工具 git
git学习四:常用命令总结,包括创建基本命令,分支操作,合并命令,压缩命令,回溯历史命令,拉取命令
这篇文章是关于Git常用命令的总结,包括初始化配置、基本提交、分支操作、合并、压缩历史、推送和拉取远程仓库等操作的详细说明。
235 1
git学习四:常用命令总结,包括创建基本命令,分支操作,合并命令,压缩命令,回溯历史命令,拉取命令
|
8月前
|
开发工具 git 开发者
关于git 解决分支冲突问题(具体操作,包含截图,教你一步一步解决冲突问题)
本文通过具体操作和截图,详细讲解了如何在Git中解决分支冲突问题,包括如何识别冲突、手动解决冲突代码、提交合并后的代码,以及推送到远程分支。
1613 3
关于git 解决分支冲突问题(具体操作,包含截图,教你一步一步解决冲突问题)
|
9月前
|
缓存 开发工具 git
Git创建分支以及合并分支
在Git中,创建分支使用`git branch [branch_name]`,切换分支使用`git checkout [branch_name]`。修改文件后,通过`git add [file]`添加到暂存区,然后`git commit`提交到本地仓库。如果是新建分支的第一次推送,使用`git push origin [branch_name]`推送到远程仓库,之后可以简化为`git push`。合并分支时,使用`git merge [branch_name]`将指定分支的更改合并到当前分支。
254 2
Git创建分支以及合并分支
|
8月前
|
开发工具 git
Git分支使用总结
Git分支使用总结
100 1
|
9月前
|
测试技术 开发工具 git
掌握 Git 分支策略:提升你的版本控制技能
在现代软件开发中,版本控制至关重要,Git 作为最流行的分布式版本控制系统,其分支管理策略对于高效协作和代码维护尤为重要。本文介绍了几种常用的 Git 分支策略,包括主线开发模型、功能分支模型、Gitflow 工作流和 Forking 工作流,并探讨了如何根据项目需求选择合适的分支模型。通过保持 `master` 分支稳定、及时合并清理分支、使用命名规范、利用 Pull Request 进行代码审查及自动化测试等最佳实践,可以显著提升团队协作效率和软件质量。掌握这些策略将帮助开发者更好地管理代码库,加快开发流程。

相关实验场景

更多