需求场景:两个分支branch new 和 branch old 一老的一新的两个分支。
在new分支开发一部分 突然中途插入 old分支要做一些功能修复 直接切换分支会导致new分支所做修改 被带入打开的old分支。
---我们想要的效果:
1:new 分支的修改不带入old分支
2:old分支处理完成后还可以切回new分支继续进行开发任务
方案一:直接将new分支的修改commit后切换到old分支即可(这种方式更适用与小阶段性开发完毕情况)
方案二:使用git stash命令。(适用于开发一半,中途切换)
用法一:
在new分支下 使用git stash这样会将 new分支的修改暂存起来 但是没有保存修改信息 如果有多条stash则难以区分
用法二:
在new分支下:使用git stash save "message信息" 暂存new分支修改的同时 自己可以添加这次暂存修改的备注
------查看 当前分支有多少stash暂存列表
git stash list
----在有暂存的情况下,取出最近一次的暂存修改 以在本次修改的基础上继续工作
git stash pop ---这种方式会在取出最近一次暂存修改后删除 stash
或者
git stash apply stash@{0}--这种方式在取出最近一次暂存后不会删除该暂存。
----在有多个暂存的情况下,取出历史某一个暂存的修改 以在那次修改的基础上继续工作
git stash apply stash@{x} 注:x为 git stash list 查到的,x为0时为最近一次的修改暂存。
----在两个暂存之间 切换工作 注意要rollback后再取出,否则会报错,导致暂存取出失败。
报错示例
(error: Your local changes to the following files would be overwritten by merge:
cib-cls/src/main/resources/application-dev.yaml
Please commit your changes or stash them before you merge.
Aborting)
---清除所有的git stash
git stash clear