1、假设下图是代码的主分支(用来发布版本的分支)、开发分支(代码提交推送的分支)
2、首先在本地运行下图的代码来创建开发分支(依赖于远程develop) checkout 是切换,-b是创建(创建并切换到)
3、接下来就要开始开发新功能了,此时的新功能需要单独创建一个分支,并且这个分支不应该基于master而是基于develop
使用下图的代码创建并切换到feature分支
4、在此分支上编辑代码。如下图,增加了feature字样
5、按正常流程添加一个提交
6、在编辑完代码,觉得已经可以推送的时候,
(1)拉取最新的开发分支代码到本地
(2)切换到develop分支
(3)合并feature到本地
(4)推送,最后想删除的话可以把feature分支删除
7、再使用“git branch”查看分支时,就可以看到feature以删除
8、准备进行发布。develop分支的代码不应该直接合并到master分支,而是新建一个“release”分支。
9、在这个分支上测试代码,修改到可以发布的时候提交。
10、合并release上修改后的代码到master分支和develop分支
11、删除release分支
release分支的功能就是在主分支(master)和开发分支(develop)之间起一个缓冲的作用
12、此时一个新的版本已经发布,需要打上标签标明版本。
13、此时再去gitlib中看,就会发现新的版本已经发布到master
14、在已经发布的版本中发现bug需要修改时,先从master分支拉出一个新的分支“issue-001”来修改bug
15、修改代码
16、提交修改后的文件
17、合并修改后的代码到master分支
18、合并到master分支以后,还需要合并到develop分支
19、删除修改bug的issue-001分支
20、此时再到gitlib中查看master分支和develop分支下的代码就会发现已经是修改后的代码