git学习笔记(十五)--git的分支
分支是代码管理非常重要的工具。在实际的项目实践中,单一分支的开发模式肯定是不可取的,我们遇到的问题可能各式各样。
为什么我们需要分支:
- 一个成功的软件项目需要多个开发周期,会发布多个版本,每个版本都可能会发现BUG,这需要对历史版本进行修改;
- 一个有前瞻性的项目管理,新老版本是同步进行的,两个版本混在一起开发?不现实
- 项目可能有不同的客户定制,不同的需求放在一起开发,当然不合适
- 项目团队中每个人的任务是不同的,在模块化开发日趋成熟的现在,分工合作各不干涉已经是主流,在代码的协作上不应有过多的冲突
git分支的三种应用:
发布分支 ----在软件开发周期中,从主线上分离出来的分支,负责每一个不同版本的开发维护,并将自己修改BUG后的分支融入主分支,使得后续版本不会出现前面的问题
特性分支 ----在软件开发过程中,针对有些特色功能而设定的分支,可以加入主线,也可以单独开发后留待使用
卖主分支 ----在版本库中创建一个专门和上游定制的代码进行同步的分支,一旦有上游代码发布,就检入到卖主分支中
git 分支命令:
git branch 列出本地分支
git branch <branchname> 创建分支,以默认HEAD指向的提交为起点
git branch <branchname> <start-point> 以某个提交为起点,创建分支
git branch -d <branchname> 检查该分支是否已经被合并,若合并,则删除该分支;没有合并,则不删除
git branch -D <branchname> 强行删除该分支
git branch -m <oldbranch> <newbranch> 检查该newbranch是否被用,若已经使用,则不改名称;若没有则改名字
git branch -M <oldbranch> <newbranch> 强行改该分支的名字
git分支使用的一个简单实例:
1. 首先还是创建共享库和两个工作者,记得修改名字和邮箱:

2. 在user1目录下创建分支,并切换到该分支上:

3.在分支上工作完成后,推送该分支到共享库:

4.切换到master分支,把该功能融合到master上来,再次发布:

git另外一个使用实例的简要说明:
情景描述:
假设我们已经发布了版本v1.0(用tag标示),但是现在遇到两个bug,需要两个工作人员分别处理,user1解决bug1,user2解决bug2,可以创建分支用来解决bug,解决完后发布版本v1.01,然后把该修改融入到主线中
在user1下:
git branch fixbug v1.0 创建分支
git checkout fixbug 切换分支
完成处理工作 处理bug
git add . && git commit -m "...." 本地提交
git push origin fixbug 远程推送
在user2下:
git fetch 取得发布分支
git checkout -b fixbug origin/fixbug 对于远程分支,需要基于该远程分支创建本地分支
处理工作 处理bug
git tag -m "..." v1.01 创建tag
git push 推送到远程服务器
在user1下:
git pull 取回v1.01版本
git checkout master 切换到master
git log --oneline fixbug 显示该发布分支的历史
git cherry-pick fixbug^1 从中拣选出需要的提交,放到master上来
git cherry-pick ... 继续拣选
git add . && git commit -m "..." 主线也完成了bug的修复
注意,在分支的使用过程中,可以有很多种组合方式,是先创建,再共享,然后分别工作;还是先创建后工作,再共享;等等都有不同的处理方式,只要明白branch的原理,使用起来是非常方便的。
个人认为,最好事先可以定一下小组分工,管理者做的工作就是创建,共享,拉回,发布;而程序员的工作就是拉回,修改,提交;大家权限一样,反而会适得其反,最好有详细的分工配置。
浙公网安备 33010602011771号