分支开发请进
更新时间:2021-01-04
实际的项目开发中,往往不可避免的需要在master之外的其他分支提交代码。拉分支的情况可能有以下几种,不论你是哪种场景,原理都是相通的。
- 我的项目都在主干上提交,但有一个大功能(或重构)开发周期比较长,为了避免影响主干上线,故需要在这段时间内开一个新分支=>有大功能或重构等开发周期比较长的任务时拉分支
- 我的项目使用“主干开发分支发布”的工作流,在发布分支上需要提交代码来修复bug=>发布后上线前拉分支
- 我的项目使用“分支开发主干发布”的工作流,研发人员都是将代码提交到个人分支上,待代码开发完成后再合并到主干上线=>项目初期拉分支
- 我的项目使用“分支开发分支发布”的工作流,上线成功后才会将代码从分支合并到主干上=>项目初期拉分支
(警告) 本文中提到的“主干”通常就是指“master分支”,“开发环境”就是指你克隆到本地的代码库目录下(和.git同级)
分支开发大法
我的项目代码托管在iCode上,我如何在master之外的其他分支提交代码呢?参考下面的方法:
步骤 | 说明 | 操作方法 |
---|---|---|
通常情况下,一个代码库总是有一个基线的,可以基于某条分支/某个Tag/某个版本拉取一个分支,这里基于master拉取分支举例, | 入口1:icode.baidu.com | |
拉分支 | 入口有以下三种: * icode>新建分支* ipipe>拉分支* git客户端>git push [远程仓库别名] [本地分支]:[远程分支]* |
入口2:ipipe |
若本地曾经克隆过对应的代码仓库请跳过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 | |
方法1:直接push推入远程目标分支。 * git push origin [branch-name]:[branch-name] |
方法1: | |
提交 | 方法2:将已经提交到本地仓库的修改推入远程仓库,之后走常规评审流程合入即可(操作同master类似) * git push origin [branch-name]:refs/for/[branch-name] |
|
分支代码回归主干 | 当开发分支上的代码稳定后,通常需要将分支代码合并回主干,方法有两种,以方法1举例 1. 在iCode>对比页合并两条分支2. 使用git merge在本地完成合并后,再push到远程仓库(特别的,当两条分支的代码存在冲突的情况下,只能选择方法2) |
删除分支