Git分支管理--Bug分支

愿所有美好如期而遇


Git分支管理--Bug分支_第1张图片

我们现在正在dev4分支上进行开发,但是在我们开发过程中,并且我们还未提交,master分支上出现了bug,需要我们修复,我们先来看情景

Git分支管理--Bug分支_第2张图片

 我们添加一行代码并且不提交充作开发,模拟正在进行开发时master分支出现bug时的情景。

Git分支管理--Bug分支_第3张图片

此时我们切换回master分支,此时dev4分支里做的修改我们在master分支上也能看见(因为我们未提交到dev4分支上)

Git分支管理--Bug分支_第4张图片

此时我们也并未开发完成,不想做提交,但是又想新建一个分支去修改bug,同时在这个分支上看不见我们未完成开发的代码,就需要 git stash命令将我们工作区内容进行储藏,将来在某个时间段进行恢复。

Git分支管理--Bug分支_第5张图片

 同时,git stash只能追踪管理我们添加提交过的文件,未被git管理的文件,无法储藏他的内容。

同时我们储藏的内容会出现在本地仓库内,tree .git即可查看

Git分支管理--Bug分支_第6张图片

现在,我们新建分支去修复bug。

Git分支管理--Bug分支_第7张图片

我们假设少写了一行代码而引起了bug,所以我们修复它

Git分支管理--Bug分支_第8张图片

Git分支管理--Bug分支_第9张图片

此时,我们已经完成了bug的修复工作

Git分支管理--Bug分支_第10张图片

 接下来就是我们的数据恢复工作

使用指令git stash pop,恢复dev4分支储藏的代码。

Git分支管理--Bug分支_第11张图片

当我们恢复后,发现修复后的内容并没有在我们的dev4分支上显示出来

Git分支管理--Bug分支_第12张图片

此时的状态图是这样的

Git分支管理--Bug分支_第13张图片

 我们现在可以继续开发,假设我们一段时间后开发完成了

Git分支管理--Bug分支_第14张图片

我们最终的目的是将dev4上的代码合并到master上,以此完成新功能,但是修改过bug后,我们现在的代码和master的代码是不一样的,合并时会发生冲突,而这个冲突时需要我们手动去解决的,在master上删除那些冲突代码是有风险的,所以我们需要在dev4上进行合并master解决冲突后再切换回master分支上合并dev4。

状态图如下:

Git分支管理--Bug分支_第15张图片

Git分支管理--Bug分支_第16张图片

我们vim Readme后,fix bug和I am coding... Done,这两句代码会发生冲突,我们只需要将I am...这句代码放在最后,这样就解决了代码的冲突,因为我们开发的代码前面没有了和master不一样的代码,我们也就能成功合并。

Git分支管理--Bug分支_第17张图片

Git分支管理--Bug分支_第18张图片

最终我们完成了合并。

Git分支管理--Bug分支_第19张图片

 最后,我们删掉已经没用的分支。

Git分支管理--Bug分支_第20张图片

你可能感兴趣的:(Git,Git,Bug分支)