分支开发请进

实际的项目开发中,往往不可避免的需要在master之外的其他分支提交代码。拉分支的情况可能有以下几种,不论你是哪种场景,原理都是想通的。

  • 我的项目都在主干上提交,但有一个大功能(或重构)开发周期比较长,为了避免影响主干上线,故需要在这段时间内开一个新分支=>有大功能或重构等开发周期比较长的任务时拉分支
  • 我的项目使用“主干开发分支发布”的工作流,在发布分支上需要提交代码来修复bug=>发布后上线前拉分支
  • 我的项目使用“分支开发主干发布”的工作流,研发人员都是将代码提交到个人分支上,待代码开发完成后再合并到主干上线=>项目初期拉分支
  • 我的项目使用“分支开发分支发布”的工作流,上线成功后才会将代码从分支合并到主干上=>项目初期拉分支

(警告) 本文中提到的“主干”通常就是指“master分支”,“开发环境”就是指你克隆到本地的代码库目录下(和.git同级)

分支开发大法

我的项目代码托管在iCode上,我如何在master之外的其他分支提交代码呢?参考下面的方法:

步骤 说明 操作方法
通常情况下,一个代码库总是有一个基线的,可以基于某条分支/某个Tag/某个版本拉取一个分支,这里基于master拉取分支举例, 入口1:icode.baidu.combranch-new.png
拉分支 入口有以下三种:
* icode>新建分支* ipipe>拉分支* git客户端>git push [远程仓库别名] [本地分支]:[远程分支]*
入口2:ipipebranch-new-ipipe.png
若本地曾经克隆过对应的代码仓库请跳过clone步骤,按照下述1~5将新分支fetch到本地,在新分支上开发和提交 入口3:在开发环境中使用git客户端,举例:基于本地的master分支创建一个test分支

$ git push origin master:test
开发 1. $ cd /my-repo/dir #进入开发环境。注意:若事先并没有克隆过代码库,需要在这步之前先克隆代码库2. $ git fetch3. $ git checkout [branch-name]4. 编码5. git add && git commit update-code.png
方法1:直接push推入远程目标分支。
* git push origin [branch-name]:[branch-name]
方法1:push-code.png
提交 方法2:将已经提交到本地仓库的修改推入远程仓库,之后走常规评审流程合入即可(操作同master类似)
* git push origin [branch-name]:refs/for/[branch-name]
push-code2.png
分支代码回归主干 当开发分支上的代码稳定后,通常需要将分支代码合并回主干,方法有两种,以方法1举例
1. 在iCode>对比页合并两条分支2. 使用git merge在本地完成合并后,再push到远程仓库(特别的,当两条分支的代码存在冲突的情况下,只能选择方法2)
merge-code.png

删除分支

branch-del.png