🏀事情起因:
大家好,我是JavaDog程序狗
最近翻看公众号评论时,发现文章【规范】Git分支管理,看看我司是咋整的
本狗在回复留言时,发现小伙伴对于切换分支有所疑惑:
本地代码要是修改且未提交,切换分支时本地修改内容咋办
遇到这种问题的小伙伴一定是没有用好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 会做以下几件事
******
git stash
git stash save "v2.1.1订单需求代码"
git stash list
# 应用最新的stash
git stash apply
# 通过git stash list查询后,获取应用指定的stash引用
git stash apply stash@{2}
# 删除最新的stash
git stash drop
# 通过git stash list 查询后,删除指定的stash引用
git stash drop stash@{2}
# 通过git stash list 查询后,应用最新的stash并删除
git stash pop
# 清空所有的stash
git stash clear
# 查看最新stash的内容
git stash show
# 创建一个新的分支并应用最新的stash
git stash branch new_feature
******
🌰实例
当前分支feature-javadog-v2.1.1-SNAPSHOT-20240703正在开发写了一半,突然线上有紧急bug,需要切出bug分支进行修改问题,咋办?
目前存在的问题是,现在分支开发还没有写完,没法提交,如果切换分支本地代码就会丢失,所以就需要使用git stash命令
git stash save "v2.1.1订单需求代码"
git stash list
git stash apply 0
git stash drop 0
以上实际例子出发,展示实际操作用的基础命令,其余命令使用均可参考上述相关使用指令
git stash 是 Git 提供的一个功能,用于临时存储当前工作目录和暂存区中所有未提交的更改。当你需要切换分支或进行其他操作,而又不想丢失当前正在进行的工作时,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。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。