git学习笔记(十):Bug分支

发布时间 2023-08-01 08:46:44作者: 芋圆院长

bug的产生无法避免-_-

每个bug都可以通过一个新的临时分支来修复,修复后合并分支,然后将临时分支删除。

当你想创建一个新分支来修复这个bug时,突发情况是你正在编写的代码还在没有完成,所在分支还无法提交。但Bug又很紧急,必须处理。这个时候要如何从没完成 没提交的任务中跳到另一个任务中呢?那必须要有保留未完成的任务的功能了。

$ git stash

stash功能可以把当前工作现场“储存”起来,等以后恢复现场继续工作。

此后用git status查看工作区就是干净的,可以放心创建分支来修复bug。

在哪个分支上修复bug,就在哪里创建临时分支。(这里的例子是master分支)

$ git checkout master

$ git checkout -b issue-001

修复完成后提交对应文件和commit,并切换到对应分支,完成合并,最后删除临时分支。

$ git switch master

$ git merge --no-ff -m "merge bug fix 101" issue-101

然后返回工作区

$ git switch dev

$ git status

显示工作区是干净的,使用git stash list命令查看目前git栈中的所有工作内容的备份。

结果显示工作现场还在,git把stash内容存在某个地方了,但是需要恢复一下。
方法一:使用git stash apply恢复,但是恢复后stash内容并不删除,需要使用git stash drop来删除。恢复指定的stash可以用git stash apply stash@{0}

$ git stash list

方法二:使用git stash pop,恢复的同时把stash内容也删了。

场景扩展

在主分支master上进行修改后,工作的dev分支实际上也存在一样的问题。一种办法就是换到dev分支上进行同样的操作,另一种办法就是把更改复制。

cherry-pick命令可以复制一个特定的更改到当前分支

$ git branch
$ git cherry-pick XXXXX

这里的XXXXX是对应的修改代号,在之前master分支提交时可以看到。

参考链接

  1. 廖雪峰网站:https://www.liaoxuefeng.com/wiki/896043488029600/900394246995648