第一章: Git stash:
介绍:
- 当正在 dev 分支上开发某个项目,这时项目中出现一个 bug,需要修复,但是项目只完成一半,还不想提交,这时可以使用 git stash 命令将修改的内容保存至堆栈区,然后顺利切换到别的分支,进行 bug 修复,再次切回到 dev 分支,从堆栈区恢复刚刚保存的内容。
- 由于疏忽,本应该在 dev 分支开发的内容,却在 master 进行了开发,需要回到 dev 分支上进行开发,可以用 git stash 将内容保存在堆栈中,切回到 dev 分支后,再次恢复内容即可
总结:
- git stash 命令的作用是将目前还不想提交的但是已经修改的内容进行保存至堆栈中,后续可以在某个分支上恢复出堆栈的内容。
- stash 中的内容不仅可以恢复到原先开发的分支,也可以恢复到其他任意分支上
- git stash 作用的范围包括工作区和暂存区的内容,也就是说没有提交的内容都会保存至堆栈中
git shash :
- 在 master 分支修改 A.txt 文件,添加一行内容
- 切换到 dev 分支会提示错误,git 建议我们提交或 stash 修改的内容再进行切换
- 先把修改的内容 git stash 到堆栈区再进行分支切换
- git stash list:列出 stash 保存的所有修改
- git stash pop:将堆栈中的文件取出
第二章:分支管理策略
- git 的分支整体预览图如下:
- master :git 默认主分支(这里不做操作)
- stable:稳定分支,代替 master,主要用来版本发布
- develop:日常开发分支,该分支正常保存了开发的最新代码
- feature:具体的功能开发分支,只与 develop 分支交互
- release:可以认为是 stable 分支的为测试版
- 比如:某一期的功能全部开发完成,那么就将 develop 分支合并到 relese 分支,测试没有问题并且到了发布日期就合并到了 stable 分支,进行发布
- bugfix:线上 bug 修复分支
主分支:
- master 分支不做操作,这里针对 stable 和 develop 这两个分支来讲解
- stable 分支:用来发布,管理着多个稳定的版本
- develop 分支:日常开发的分支
- 使用这两个分支就具有了最简单的开发模式:
- develop 分支用来开发功能,开发完成并且测试没有问题后,则将 develop 分支的代码合并到 stable 分支并发布
辅助分支:
- 通过这些分支,我们可以做到:团队成员之间并行开发,增加新功能更加容易,可以同时进行开发和版本发布、线上 bug 修复等
Feature 分支:
- feature 分支用来开发具体的功能,一般基于 develop 分支,最后完成功能后再合并到 develop 分支
- 例如:
- 我们针对 develop 分支来做功能开发,在开发的过程中会有紧急需求需要开发,且在本次版本发布之前要能测试完成
- 我们可以基于之前稳定版本另开一个 feature 分支来做紧急需求的开发,并发布进行测试,完成之后再合并到 develop 分支上
release 分支:
- release 分支作为预发布分支,release 分支从 develop 分支 fork 出来,最终会合并到 develop 分支和 stable 分支,合并到 stable 分支上就是可以发布的代码了
- 为什么要从 develop 分支 fork 出来再合并到 develop 分支:
- 在 release 分支上难免会有 bug 产生,恢复 bug 也是在 release 分支上,所以必须要合并到 develop 分支
bugfix 分支:
- bugfix 分支用来修复线上 bug
- 当线上代码出现 bug 时,我们基于 stable 分支开一个 bugfix 分支,修复 bug 之后再将 bugfix 分支合并到 stable 分支并进行发布,同时 develop 分支作为最新最全的代码分支,bugfix 分支也需要合并到 develop 分支上去