前言

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

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

🏀事情起因:

大家好,我是JavaDog程序狗

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

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

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

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

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

遇到这种问题的小伙伴一定是没有用好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用的好,切换分支随便搞_规范_04

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

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

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

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

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

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

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

三. git stash 使用实操

🌰实例

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

总结

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。

🍈猜你想问
如何与狗哥联系进行探讨
关注公众号【JavaDog程序狗】

公众号回复【入群】或者【加入】,便可成为【程序员学习交流摸鱼群】的一员,问题随便问,牛逼随便吹,目前群内已有超过280+个小伙伴啦!!!

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

2.踩踩狗哥博客

 javadog.net

里面有狗哥的私密联系方式呦 😘

大家可以在里面留言,随意发挥,有问必答

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


🍯猜你喜欢
文章推荐

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

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

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

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

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

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

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

 【ChatGPT】SpringBoot+uniapp+uview2对接OpenAI,带你开发玩转ChatGPT

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