JavaEE鸿蒙应用开发HTML&JS+前端Python+大数据开发人工智能开发AI+设计软件测试新媒体+短视频直播运营产品经理集成电路应用开发(含嵌入式)Linux云计算+运维开发C/C++拍摄剪辑+短视频制作PMP项目管理认证电商运营Go语言与区块链大数据PHP工程师Android+物联网iOS.NET

【Java教程】Feature分支开发到一半时切换到bugfix分支,如何暂存数据

来源:黑马程序员

浏览3598人

2022.07.05

1、解决思路

在工作过程中,当你正在当前feature分支上进行功能的开发,突然来了一个bug,要创建一个bugfix修复分支进行修复。但是当前feature分支你只开发了一半,显然你去提当前的半成品是不合适的,我们如何处理此类问题,来大家看下一图解:

image-20220618114708676.png

我们用到的关键命令:

#创建Stash 工作点:
 git stash save "干活干到一半"
#查看stash list
 git stash list
恢复方式一:
 # apply恢复后手动drop清除stash
 $ git stash apply
 $ git stash drop
 # 多个stash时,恢复指定stash需加上id, 如
 $ git stash apply stash@{0}
恢复方式二:
 # 恢复最近一次stash到栈中的内容到工作区,恢复后删除此stash
 git stash pop
# 同理 有多个存储时
 git stash pop stash@{0}

 

2、动手实践

上图中我们可以看到整个的处理过程,下面我们来看下具体的操作

2.1、基于Idea工具解决

右击项目目录----Git----Reppository----Stash Changes

image-20220618102149182.png

弹框填上message并勾上keep index方便后面找回,

 

image-20220618102640158.png

点击create stash,此时你会发现会得到一个与你master分支内容相同的代码

 

image-20220618102802508.png

当然你是不能直接在feature分支上修复bug的,这是你需要切换master分支:

image-20220618102846388.png

在master主分支基础上创建bugfix分支进行修复

image-20220618102936364.png

image-20220618103133113.png

修复bug,并提交到bugfix

image-20220618103251874.png

再切换master分支,然后续进行bugfix分支的合并

 

image-20220618103604898.png

image-20220618103708052.png

把之前在bugfix分支上修复的代码合并到当前的master分支

image-20220618103847943.png

bug修复完成后,切回到feature分支,继续工作

 

image-20220618104001521.png

image-20220618104016520.png

找回上一次feature的工作点进行工作

image-20220618104125540.png

弹出框选择你的工作点,然后点击Apply Stash

image-20220618104158057.png

image-20220618104258639.png

2.2、基于Git命令解决

image-20220618111034328.png

feature分支打代码开发到一半,这时候来了bug需要切换分支修复

image-20220618111327948.png

创建Stash 工作点:

#创建Stash 工作点:
git stash save "干活干到一半"

image-20220618111726136.png

此时你再查看App.java代码会发现会得到一个与你master分支内容相同的代码

image-20220618111836182.png

当然你是不能直接在feature分支上修复bug的,你需要切换master分支:

image-20220618111938530.png

在master主分支基础上创建bugfix分支进行修复

image-20220618112124843.png

image-20220618112253493.png

bugfix代码后进行提交

image-20220618113042136.png

再切换master分支,然后续进行bugfix分支的合并

image-20220618113214014.png

合并bugfix代码到master

image-20220618113347448.png

image-20220618113414580.png

bug修复完成后,切回到feature分支,继续工作

image-20220618113506806.png

找回上一次feature的工作点进行工作

#stash列表查看
git stash list

image-20220618113647894.png

# apply恢复后手动drop清除stash
$ git stash apply
$ git stash drop

image-20220618113942013.png

image-20220618114103276.png