feacture branching概述
feacrture branching是一个多人协作开发的模式,在主分支master上,每个开发者在主分支上建立新的自己的分支用于开发自己的功能。
在实际开发中,master 分支非常强调环境的稳定性。因此当我们要开发新的功能或者特性时,需要从 master 分支上拉取 feacture 分支,这样开发者就能在 feacture 分支上独立开发而不影响主分支。当完成开发后,需要提交 pull request 将 feacture 分支合并回 master 分支中。 通过 pull request ,仓库中的其他成员能对即将 merge 的代码进行审核并提出建议,从而保证了安全可靠性。
大致流程就是,合作者都在一条主分支进行开发,每开发一个功能都在主分支上拉出一个自己的分支,这样可以不影响主分支进行开发,开发确保安全之后,再合并回主分支的过程。
假设有两个人同时对某一次提交进行主分支开发,如果开发者a首先进行对主分支的修改,开发者b则需要更新一下主分支再进行合并,否则的话开发者a的这次修改并没有被开发者b所更新。如下图:
很显然,如果开发者b不进行更新,主分支就会出现两个版本,正确的是要开发者b要实时更新主分支,把功能a的开发更新,这样就可以顺利开发两个功能了,如图:
操作流程
1. 准备工作:
第一步:首先将合作者拉入远程仓库
第二步:克隆项目
使用git clone SSH
2. 创建分支:
第一步:在远程仓库创造分支
在github上点击new branch创造自己的分支。
第二步:在本地仓库创造分支
首先,在远程仓库创造的分支是一个新的操作,我们需要更新一下本地仓库把刚刚新建的分支更新下来,使用git pull,可以使用git branch -av分支更新情况
随后使用git checkout -b feature orign/feature命令创造本地分支并与远程分支连接,可以使用git branch -vv查看连接情况
3.开发分支:
第一步:
在开发分支前,应当切换到master分支上进行git pull操作进行实时更新主分支,确保在最新的主分支上去开发!
第二步:
开发完成后,再次进行主分支的更新,然后add/commit/push,更新自己的远端分支
第三步:
在github上点击pull request上向管理员申请合并,管理员审查没有问题之后,进行分支的合并,完成本次功能的开发。
4. 删除分支:
开发完成后,最好删除分支
第一步:删除远程仓库的分支
在github上分支管理中点击删除键删除分支
第二步:删除本地分支
git branch -D feature进行分支的删除
这里使用git pull --prune进行彻底的删除