申明:资料来源于网络及书本,通过理解、实践、整理成学习笔记。
分支定义
主分支:master
开发分支:develop
功能分支:feature
预发布分支:release
修补bug分支:fixbug
feature、release、fixbug这三种分支都属于临时性需要,使用完以后,应该删除,使得代码库的常设分支始终只有Master和Develop。
分支的使用规划
master:主分支(远程记录,管理员提交),只用来标记客户使用的发行版,当develop中的一次提交测试完成后,正式给客户使用时,将开发分支合并到主分支并进行标记。
develop:开发分支(远程记录,开发人员提交),记录的主干,功能的开发并不在这里完成。
feature: 用于功能开发(本地临时记录),在这里我们是一个开发人员完成一个功能开发。
开发时先从 develop 分支创建一个以 “功能” 命名的临时分支,一个功能开发完成后合并到 develop 分支,并删除这个临时分支(必须要删除),再次从 develop 分支创建新的临时分支进行下一个功能开发。为什么这样做,等你会用分支树,并需要在以后翻代码时就知道了。
一、合并临时分支到开发分支
- 来源分支(feature)要干净:git status
- 切换到目标分支:git checkout develop
- 目标分支(develop)要干净:git status
- 合并到目标分支:git merge --no-ff -m “某某功能完成合并到 develop” feature
- 查看分支图:git log --graph --oneline --all
- 删除临时分支(必须删):git branch -d feature
- 再次查看分支图:git log --graph --oneline --all
- 再次开发新功能,重新建立临时分支
合并到目标分支时必须强制使用 “ --no-ff ” 参数,不进行快速合并,通过前后分支图对比 “ 9d5417c (feature) 完成第一个功能 ” 与 “ 9d5417c 完成第一个功能 ” 的差异就在括号这 “ (feature) ” , 这个括号的内容就是来源分支,删除临时分支后来源分支名看不到了,但是这个过程被清楚的记录下来了。
Administrator@PC202008061317 MINGW64 /c/www/git-demo (feature)
$ git status
On branch feature
nothing to commit, working tr