git-flow实践手册v1.1
GIT-Flow分支与流程说明

GIT-Flow分⽀与流程说明GIT Flow 分⽀说明●主分⽀主分⽀是所有开发活动的核⼼分⽀。
所有的开发活动产⽣的输出物最终都会反映到主分⽀的代码中。
主分⽀分为master分⽀和development分⽀。
●master分⽀master分⽀上存放的应该是随时可供在⽣产环境中部署的代码(Production Ready state)。
当开发活动告⼀段落,产⽣了⼀份新的可供部署的代码时,master分⽀上的代码会被更新。
同时,每⼀次更新,最好添加对应的版本号标签(TAG)。
●develop分⽀develop分⽀是保存当前最新开发成果的分⽀。
通常这个分⽀上的代码也是可进⾏每⽇夜间发布的代码(Nightly build)。
因此这个分⽀有时也可以被称作“integration branch”。
当develop分⽀上的代码已实现了软件需求说明书中所有的功能,通过了所有的测试后,并且代码已经⾜够稳定时,就可以将所有的开发成果合并回master分⽀了。
对于master分⽀上的新提交的代码建议都打上⼀个新的版本号标签(TAG),供后续代码跟踪使⽤。
因此,每次将develop分⽀上的代码合并回master分⽀时,我们都可以认为⼀个新的可供在⽣产环境中部署的版本就产⽣了。
通常⽽⾔,“仅在发布新的可供部署的代码时才更新master分⽀上的代码”是推荐所有⼈都遵守的⾏为准则。
基于此,理论上说,每当有代码提交到master分⽀时,我们可以使⽤Git Hook触发软件⾃动测试以及⽣产环境代码的⾃动更新⼯作。
这些⾃动化操作将有利于减少新代码发布之后的⼀些事务性⼯作。
●辅助分⽀辅助分⽀是⽤于组织解决特定问题的各种软件开发活动的分⽀。
辅助分⽀主要⽤于组织软件新功能的并⾏开发、简化新功能开发代码的跟踪、辅助完成版本发布⼯作以及对⽣产代码的缺陷进⾏紧急修复⼯作。
这些分⽀与主分⽀不同,通常只会在有限的时间范围内存在。
辅助分⽀包括:⽤于开发新功能时所使⽤的feature分⽀;⽤于辅助版本发布的release分⽀;⽤于修正⽣产代码中的缺陷的hotfix分⽀。
Git-flow使用笔记

Git-flow 使用笔记Git-flow 使用笔记2012-03-12git-flow 原理:A successful Git branching model ,两篇不错的中文翻译: Git 开发管理之道,一个成功的Git 分支模型。
简单来说,git-flow 就是在 git branch git tag 基础上封装出来的代码分支管理模型,把实际开发模拟成 master develop feature release hotfix support 几种场景,其中 master 对应发布上线,develop 对应开发,其他几个在不同的情况下出现。
通过封装,git-flow 屏蔽了 git branch 等相对来说比较复杂生硬的命令(git branch 还是比较复杂的,尤其是在多分支情况下),简单而且规范的解决了代码分支管理问题。
安装 git-flow:1brew install git-flow 在一个全新目录下构建 git-flow 模型:1 2 3 4 5 6 7 8 9 10 11 12 git flow initInitialized empty Git repository in/Users/fannheyward/flowTest/.git/No branches exist yet. Base branches must be created now. Branch name for production releases: [master]Branch name for "next release" development: [develop]How to name your supporting branch prefixes?Feature branches? [feature/]Release branches? [release/]Hotfix branches? [hotfix/]Support branches? [support/]Version tag prefix? [] 或者在现有的版本库构建:1 2 3 4 git flow initWhich branch should be used for bringing forth production releases? - masterBranch name for production releases: [master]5 6 7 8 9 10 11 12Branch name for "next release" development: [develop]How to name your supporting branch prefixes?Feature branches? [feature/]Release branches? [release/]Hotfix branches? [hotfix/]Support branches? [support/]Version tag prefix? []中间会询问生成的分支名,直接回车默认。
Gitlab使用手册

Gitlab使用手册Gitlab使用手册目录一、Gitlab账号/库申请流程1.1 Gitlab账号申请1.2 Gitlab库申请二、Gitlab登录2.1 Gitlab访问路径2.2 Gitlab登录页面三、Git环境配置一、Gitlab账号/库申请流程1.1 Gitlab账号申请要申请Gitlab账号,需要联系管理员并提供必要的个人信息。
管理员会审核申请并在通过后提供账号信息。
1.2 Gitlab库申请在获得账号后,可以申请创建Gitlab库。
需要提供库的名称和描述,以及访问权限等信息。
管理员会审核申请并在通过后提供库的访问信息。
二、Gitlab登录2.1 Gitlab访问路径Gitlab的访问路径为,为Gitlab所在服务器的域名。
需要在浏览器中输入该地址以访问Gitlab。
2.2 Gitlab登录页面在访问Gitlab后,需要在登录页面输入账号和密码以登录。
登录成功后,可以访问自己的账号和已有的库。
三、Git环境配置在使用Gitlab之前,需要配置Git环境。
可以在Git官网下载并安装Git客户端,并在本地生成SSH密钥以方便与Gitlab进行通信。
具体的配置方法可以参考Git官方文档或者向管理员询问。
4.1.1 初始化git库在使用git之前,需要先初始化一个git库。
可以通过git init命令在本地创建一个新的git库,也可以通过git clone命令从远程库中克隆一个库到本地。
4.1.2 查看git库状态使用git status命令可以查看当前git库中文件的状态,包括已修改、已暂存、未跟踪等。
4.1.3 添加文件到git库使用git add命令可以将修改后的文件添加到git库中,准备提交更新。
4.1.4 对比文件差异使用git diff命令可以对比当前文件与上次提交的文件差异,以便更好地了解修改的内容。
4.1.5 提交更新到git库使用git commit命令可以将已暂存的文件提交到git库中,记录更新的内容和时间等信息。
Git--分支管理策略(Gitflow)

Git--分⽀管理策略(Gitflow)说明:场景:我们公司的开发阶段主要分为开发—>⾃测—>提测—>灰度—>上线这5个阶段,同时在开发阶段会有多个功能同时开发或⼀些简单需求的插⼊。
在其他阶段也会涉及到线上bug的修复或紧急发版。
遇到问题:以前团队⼈数较多,经历两年的积累,Git上遗留了⼤量的个⼈分⽀和版本分⽀,⾄今⼤约有300多个,作为新⼈的我着实有点慌乱(⽼员⼯:“我就问你感动不感动?”。
我:“不敢动,不敢动”)。
虽然经历了⼀番调整,⽬前在⽤分⽀数保持在3个左右,但是由于没有成体系的分⽀管理策略,还是会在⼀定场景下遇到代码遗漏,分⽀杂乱,难以定位版本和修改记录的现象。
因此特意参考了⼏篇⽂章,针对公司项⽬开发实践,对Git flow分⽀管理⽅式进⾏实践和总结。
如有更佳实践⽅案,欢迎留⾔讨论!简介:Gitflow⼯作流程围绕项⽬发布定义了严格的分⽀模型。
其特⾊在于,它为不同的分⽀分配了⾮常明确的⾓⾊,并且定义了使⽤场景和⽤法。
除了⽤于功能开发的分⽀,它还使⽤独⽴的分⽀进⾏发布前的准备、记录以及后期维护。
(此段为摘抄内容,不再赘述)参考《git flow的使⽤》Git flow分⽀结构图分⽀⾓⾊说明:Git flow中每个分⽀担任不同的⾓⾊,有着不同的功能,以下将结合使⽤场景,从功能和⽣命周期两⽅⾯进⾏说明。
master分⽀功能:master分⽀为主⼲分⽀,是所有分⽀的源头。
Gitflow中master分⽀只有⼀个作⽤,即记录已发布的版本节点。
如需追踪某个线上版本的代码,只需切换到对应标签(tag)即可。
⽣命周期:master是仓库创建时Git提供的默认分⽀,随仓库的创建⽽创建,随仓库的消亡⽽消亡。
当然,可以⾃⾏创建master分⽀取代默认分⽀,但主分⽀应贯穿仓库的整个⽣命周期。
master分⽀develop分⽀功能: develop分⽀记录了开发阶段所有的历史提交,⽤来汇总所有新功能的内容。
gitflow使用步骤

gitflow使⽤步骤Mac安装git-flow:brew install git-flow克隆新代码:git clone git@:abc/test.git切换到远程的develop分⽀(很重要):git checkout develop (⽬的是为了和远程的分⽀关联起来)使⽤ git-flow,从初始化⼀个现有的 git 库内开始:git flow init新分⽀的开发是基于 'develop' 分⽀的(这个操作创建了⼀个基于'develop'的特性分⽀,并切换到这个分⽀之下):git flow feature start MYFEATURE发布新分⽀到远程服务器:git flow feature publish MYFEATURE完成开发新分⽀。
这个动作执⾏下⾯的操作.合并 MYFEATURE 分⽀到 'develop'删除这个新特性分⽀切换回 'develop' 分⽀git flow feature finish MYFEATUREpull操作就⽤基本的 git pull 或者 git pull origin develop 就⾏,也可以使⽤:git flow feature pull origin MYFEATURE从 'develop' 分⽀开始创建⼀个 release 分⽀。
git flow release start RELEASE将release分⽀发布到远程:git flow release publish RELEASE完成 release 版本完成 release 版本是⼀个⼤ git 分⽀操作。
它执⾏下⾯⼏个动作:归并 release 分⽀到 'master' 分⽀⽤ release 分⽀名打 Tag归并 release 分⽀到 'develop'移除 release 分⽀git flow release finish RELEASE。
git使用指南

Git使用指南Li Yanruiv0.1,20080728 liyanrui.m2@前言Git是什么非常简单地说,Git是一个快速、可扩展的分布式版本控制系统,它具有极为丰富的命令集,对内部系统提供了高级操作和完全访问。
所谓版本控制系统(Version Control System),从狭义上来说,它是软件项目开发过程中用于储存我们所写的代码所有修订版本的软件,但事实上我们可以将任何对项目有帮助的文档交付版本控制系统进行管理。
2005年,Torvalds开始着手开发Git是为了作为一种过渡方案来替代BitKeeper,后者之前一直是Linux内核开发人员在使用的版本控制工具,当时由于自由软件社区中的许多人觉得BitKeeper的使用许可证并不适合自由软件社区的工作,因此Linus决定着手开发许可证更为自由灵活的版本控制系统。
尽管最初Git的开发是为了辅助Linux内核开发的过程,但是现在很多其他自由软件项目中也使用了Git实现代码版本管理,譬如,项目、许多的项目、Ruby项目等。
为什么使用版本控制系统版本控制系统是为懒人准备的,它让懒人们比那些善于备份文档的勤劳人拥有更干净的文件系统以及更多的可以活着的时间。
本文档主要内容在第1章中讲述如何使用Git管理自己的个人文档,主要是初步熟悉Git的诸多概念及其日常基本命令的使用。
第2章中主要讲述如何基于Git实现多人协作的项目开发模式,以此扭转当前实验室成员在项目研发中各自为政或不能有效沟通的现状。
第3章讲述如何利用Git强大的项目分支管理功能实现良好风格的项目协同开发模式。
第4章为Git使用之FAQ,用于记载在本实验室推广使用Git过程中诸位同学所遇到的一些细节问题。
Contents第1章使用Git管理个人文档11.1何种文档需要保存11.2建立项目仓库11.3关于建立Git仓库的一些细节31.4仓库与工作树41.5在项目中工作41.6查看版本历史51.7撤销与恢复71.8如何使用Git帮助文档81.9总结8第2章基于Git的团队协同开发92.1两个人如何协同92.2如何解决仓库合并冲突102.3三人以至更多人如何协同122.4M2GE的协同开发132.5总结14第3章项目分支管理153.1如何产生项目分支153.2分支的合并163.3M2GE新的协同开发模式163.4总结17第1章使用Git管理个人文档本章讲述如何使用Git管理我们的个人文档,用以展示Git的一些基本功能,并且秉承学以致用、用以促学的精神,引导大家积极地将Git应用于日常学习与工作中的文档备份。
git的实验报告

git的实验报告《Git的实验报告》在软件开发领域,版本控制是一个非常重要的环节。
而Git作为目前最流行的分布式版本控制系统,其强大的功能和灵活的操作方式受到了广泛的关注和应用。
为了更好地了解Git的使用和特性,我们进行了一系列的实验,并在此撰写实验报告,分享我们的实验结果和心得体会。
实验一:Git的基本操作在本实验中,我们首先学习了Git的基本操作,包括创建仓库、添加文件、提交更改、查看历史记录等。
通过实际操作,我们深入了解了Git的工作流程和命令的使用方式。
我们发现Git的分支管理功能非常强大,能够有效地支持团队协作和代码的并行开发。
实验二:Git的分支管理在本实验中,我们重点学习了Git的分支管理功能。
我们通过创建、合并、删除分支等操作,深入理解了Git分支的概念和作用。
我们发现Git的分支管理能够极大地提高团队的工作效率,同时也能够有效地管理和维护项目的代码。
实验三:Git的远程仓库在本实验中,我们学习了Git的远程仓库功能,包括与远程仓库的交互、推送和拉取代码等操作。
我们发现Git的远程仓库能够方便地实现团队成员之间的代码共享和协作,同时也能够保证代码的安全和可靠性。
实验四:Git的高级功能在本实验中,我们进一步学习了Git的高级功能,包括标签管理、重置和撤销操作等。
通过实际操作,我们深入了解了Git的高级功能的作用和使用方式。
我们发现Git的高级功能能够帮助我们更好地管理和维护项目的代码,提高开发效率和质量。
通过以上一系列的实验,我们更加深入地了解了Git的使用和特性,同时也提高了我们的团队协作能力和代码管理能力。
我们相信Git作为一个优秀的版本控制系统,将会在未来的软件开发中发挥越来越重要的作用。
希望我们的实验报告能够对大家有所帮助,也欢迎大家一起探讨和分享Git的实践经验。
git flow

acorn software git branch一、主分支MasterGit主分支的名字,默认叫做Master。
它是自动建立的,版本库初始化以后,默认就是在主分支在进行开发。
二、开发分支Develop主分支只用来分布重大版本,日常开发应该在另一条分支上完成。
我们把开发用的分支,叫做Develop。
这个分支可以用来生成代码的最新隔夜版本(nightly)。
如果想正式对外发布,就在Master分支上,对Develop分支进行"合并"(merge)。
Git创建Develop分支的命令:git checkout -b develop master将Develop分支发布到Master分支的命令:# 切换到Master分支git checkout master# 对Develop分支进行合并git merge --no-ff develop三、临时性分支除了常设分支以外,还有一些临时性分支,用于应对一些特定目的的版本开发。
临时性分支主要有三种:* 功能(feature)分支* 预发布(release)分支* 修补bug(fixbug)分支这三种分支都属于临时性需要,使用完以后,会删除,使得代码库的常设分支始终只有Master和Develop。
四、功能分支功能分支,是为了开发某种特定功能,从Develop分支上面分出来的。
开发完成后,要再并入Develop。
功能分支的名字,采用feature-*的形式命名。
创建一个功能分支:git checkout -b feature-x develop开发完成后,将功能分支合并到develop分支:git checkout developgit merge --no-ff feature-x删除feature分支:git branch -d feature-x五、预发布分支预发布分支,是指发布正式版本之前(即合并到Master分支之前),我们可能需要有一个预发布的版本进行测试。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Git flow 实践手册参与人员发布记录作者简介Elson,网名小肥鱼,花城原著居民,网络专业科班出身,英文水准估计有美国幼儿园小朋友三成功力,读书时候喜欢参加比赛,没拿过国家级奖项;毕业多年一直在IT行业打滚,曾做过Oracle ERP功能顾问,对企业管理有一定认识;也尝试过带小团队从事外包开发;擅长php,是Zend认证php工程师,另外对Java,python和ruby略有认识。
不是技术狂人,不刻意追求系统运行性能。
由于性格上喜欢偷懒,所以总希望能用最少的代码实现最多的功能;喜欢事情有条理,所以想尽办法避免一切可能导致情况失控的因素出现;喜欢电子商务,觉得在网上做买卖很cool,很有成就感。
现供职于国内某高速成长的电子商务公司,主要从事网站系统编码工作。
一,概述Git是一个分布式版本控制软件,由Linux的发明人Linus开发并维护,其开发的目的是为了方便成百上千的Linux内核开发人员协同开发。
Git flow是一套根据Vincent Driessen总结的Git最佳实践方法而编写的Git指令快捷命令。
它主旨是方便开发人员更容易地使用Git进行版本控制。
二,安装这里讲解的是如何在Windows上安装Git Flow。
所要用到的软件都在附带的附件包里面,其中包涵以下四个文件。
首先安装Git-1.7.4-preview20110204.exe,然后分别把bin.zip文件和git-core.zip文件解压到“X:\Program Files\Git\bin”目录和“X:\ProgramFiles\Git\libexec\git-core”下。
这样子就已经把git flow安装到windows上了。
假如以前有使用TortoiseSVN的开发人员刚开始不习惯Git的使用,可以安装Tortoisegit-1.6.5.0-32bit.exe。
这是一个类似TortoiseSVN的工具。
可以帮助SVN用户过渡到Git上。
安装完成后能在右键菜单上看到熟悉的命令。
Git是分布式版本控制软件,并没有严格意义上的客户端和服务器端之分,所以其实安装了Git的同时,可以理解成既安装了客户端,也安装了服务器端。
读者可以对比TortoiseSVN和TortoiseGit的菜单就能发现,TortoiseGit比TortoiseSVN多了一个Git Create Repository here…这个菜单,这个菜单的作用就是在当前文件夹创建版本库,因为一般来说TortoiseSVN的版本库是在服务器端创建好,客户端只能是从服务器端checkout到本地的。
而TortoiseGit则是在一个文件夹创建版本库,然后通过clone把当前版本库“克隆”到别的文件夹,这就是分布式版本控制软件的一大特点。
三,分支对于svn等集中式版本控制软件,一般是客户端从服务器update最新代码,然后修改或编写新功能后再commit到服务器。
当开发人员正在试图增强一个模块,工作做到一半,由于会改变原模块的行为导致代码服务器上许多测试的失败,所以并没有提交代码。
这时候上级说,现在有一个很紧急的Bug需要处理,必须在短时间内完成。
那结果就是开发人员八仙过来,各显神通了,有的人会用diff命令,把修改过的代码输出成一个patch,然后回滚到原来的代码,修补好那个紧急bug并提交后再把patch应用回去,前前后后非常繁琐。
有的人不会使用diff命令,就直接把修改过的文件复制一份,再回滚。
可以说无论什么方式,都没有Git那么方便和科学。
对于Git版本控制,最显著的另一个特点就是鼓励每个改动都先创建一个分支,完成改动后再把分支合并回主分支里面。
这样子做的话就可以方便用户同时维护多个修改而不互相干扰,同时每个分支又能实现独立的版本控制。
下面这幅图是Git flow的分支示意图,要看更大的图请查看附件。
四,分布式集中管理Git是一个分布式版本管理软件,但是并不是说不能集中式管理。
从下图可以看到,origin版本库就是整个开发的核心版本库,其它版本库通过pull和push与origin 版本库同步。
其它本地版本库不仅能和origin版本库同步,也可以互相同步代码,做到多人共同开发同一个新功能,最后再把新功能push到origin版本库里面。
五,长期分支Git flow这种模式主要维护着两个长期分支,一个是开发分支(develop),另一个是主分支(master),主分支永远放的是可以稳定发布的产品。
六,开发新功能(new feature)这是许多项目的主要工作之一。
每个新功能的开发,都要先创建一个feature 分支,完成后再合并到develop分支上,假如这个新功能开发失败了,可以直接丢弃而不影响develop分支上的代码。
在这个分支上,开发人员主要是开发新功能并进行单元测试(unit test),保证模块和功能的实现。
当开发完成后,在合并到develop分支时,开发人员还要进行集成测试,也就是保证合并之后的系统不会出现兼容性问题。
七,预备发布(release)当一个开发周期内的所有新功能(feature)已经开发完毕后就能从开发(develop)分支创建一个发布(release)分支。
在发布分支上我们不再开发新功能,而是主要进行用户接受度测试(UAT),并作简单的调整。
在测试人员对发布分支进行用户接受度测试的同时,开发人员可以继续对(develop)分支进行新功能的开发,互不干扰。
当所有UAT都完成后,就能把release分支合并到master分支上,系统运维的人员就能从master分支上拿到最新版本的产品并进行部署了。
八,热修复(hotfix)再多的测试也不能保证发布的产品完全没有任何bug,假如在master分支运行期间出现了bug,就要在master分支上创建一个hotfix分支,修复这个bug,然后合并到master分支上,热修复(hotfix)就像是微软不定期发布的补丁一样。
其作用就是修复master分支上出现的bug。
九,支持(support)这是一个不是所有开发都会用到的分支,有这么一个情形会用得到,你有一个产品已经开发到2.0版本了,但是一个非常重要的客户还在使用1.0版本的产品,而同时他又不想升级到2.0版本,那么你就得为这个客户额外地增加一个从1.0版本的master分支分出来的support分支,一直为这个客户维护他的产品,直到后续维护的合同到期。
还有另一种情形,读者假如玩过《愤怒的小鸡》就会知道,它除了原版,还会不定期出情人节版,万圣节版,这些各种衍生版本只会在特定时期存在。
这些版本就可以使用support分支来进行开发。
十,Git小结十一,一个例子这是以开发一个博客为例子的视频,详情请看附件。
十二,关于版本号的问题每个产品都会有一个版本号,下面是对版本号的一般定义十三,总结Git是一个比svn年轻的版本管理软件,其强大的功能更是大有长江后浪推前浪之势,很多IDE都集成了Git,Git flow的出现更是加速了这种趋势。
但是在某写程度上Git也表现了其不成熟的一面,那就是对windows支持不足,这可能是开发git的初衷是管理Linux内核源码,考虑到大部分Linux内核开发人员都习惯命令行方式的开发模式,所以git大部分功能现在还是主要通过敲命令实现,这对于习惯TortoiseSVN的用户来说,这或许是一个不小的障碍。
十四,子命令feature用法:git flow feature [list] [-v]git flow feature start [-F] <name> [<base>]git flow feature finish [-rFk] <name|nameprefix>git flow feature publish <name>git flow feature track <name>git flow feature diff [<name|nameprefix>]git flow feature rebase [-i] [<name|nameprefix>]git flow feature checkout [<name|nameprefix>]git flow feature pull <remote> [<name>]feature start用法: git flow feature start [-F] <name> [<base>]功能: 以指定的commit名称(由base参数指定)创建一个feature分支参数: -F'fetch from origin before performing local operation' (建立分支前先从origin下载数据) 默认为false该参数在0.4版本有bug,不可用,可以使用 git fetch -q orgin develop代替namefeature的名称,对应的分支名称为feature/namebase建立feature的start point,默认为develop分支等价的Git 命令:1. git fetch -q origin develop //当 -F 设置的时候执行,只是更新.git中的remote内容,不做merge操作2. 检查本地的develop分支和远程的develop分支是否一致,即refs/develop 和refs/remote/origin/develop(建议先执行git pull origin develop或者git fetch origin develop)3. git checkout -b feature/name develop //建立分支例子:git flow feature start story_1feature publish用法: git flow feature publish <name>功能: 将一个本地的feature分支push到远程的仓库中,该命令可用于与团队其他成员合作开发或者备份自己的代码参数: name本地feature的名称等价的Git命令:1. 检查本地的工作目录及分支2. git fetch -q origin3. git push origin feature///name://refs/heads/feature///name//4. git fetch -q origin5. git checkout feature/name 例子:git feature publish story_1feature track用法: git flow feature track <name>功能: 将由feature publish发布的feature分支从远程仓库下载到本地,并建立同名分支参数: name远程feature的名称,对应feature publish的名称等价的Git命令:1. 检查本地的工作目录是否"干净";检查分支是否已经存在,如果已经存在,则报错退出2. git fetch -q origin3. git checkout -b name origin/feature/name 例子:git feature track namefeature pull用法: git flow feature pull <remote> [<name>]功能: 将由feature publish发布的feature分支从远程仓库下载到本地,并建立同名分支;如果本地已经有同名分支,则对其执行pull操作参数: name远程feature的名称,对应feature publish的名称等价的Git命令:a. 如果本地已有name分支1. git pull -q origin feature/nameb. 如果本地没有name分支1. git fetch -q origin feature/name2. git branch --no-track feature/name3. git checkout -q feature/name 例子:git flow feature pull origin story_1feature finish用法: git flow feature finish [-rFk] <name|nameprefix>功能: 完成由name指定的feature分支的开发,将其合并到本地的develop分支,合并成功后删除该分支参数: -r在合并到develop分子时,使用rebase机制,而不是merge-F在执行finish操作前,先执行fetch,从远程仓库下载更新-k执行完finsh后,保留feature分支,即不删除分支namefeature的名称,对应feature start的名称等价的Git命令:1. git fetch -q origin feature/name #当参数中设置了-F时2. git flow feature rebase name develop #当参数中设置了-r时3. git checkout develop4. git merge feature/name #根据develop分支和feature/name分支之间的提交的个数决定是否设置--no--ff5. #如果设置了-F参数,则删除远程的分支 git push origin :ref/heads/feature/name6. #如果没有设置-k参数,则删除本地的分支例子:git flow feature finish story_1feature rebase用法: git flow feature rebase [-i] [<name|nameprefix>]功能: 以develop分支作为upstream,对指定的feature分支执行rebase操作参数: -i等价与rebase -inamefeature的名称等价的Git命令:1. git checkout -q feature/name2. git rebase develop例子:git flow feature rebase -i story_1release用法:git flow release [list] [-v]git flow release start [-F] <version>git flow release finish [-Fsumpk] <version>git flow release publish <name>git flow release track <name>release start用法: git flow release start [-F] <version> [<base>]功能: 从develop分支指定的起始点(可选,默认为HEAD)建立版本发布的分支参数: version版本号base建立分支的起始点,可选参数,默认为develop HEAD等价的Git命令:1. git checkout -b release/version develop例子:git flow release start v0.1release publish用法: git flow release publish <name>功能: 将release分支发布的远程仓库,供团队协作参数: namerelease名称,与start 中的version相对应等价的Git命令:1. git fetch -q origin2. git push origin release/name:refs/heads/release/name 例子:git flow release publish v0.1release track用法: git flow release track <name>功能: 将由 publish发布的feature分支从远程仓库下载到本地,并建立同名分支,供团队协作参数: name远程feature的名称,对应feature publish的名称等价的Git命令:1. git fetch -q origin2. git checkout -b release/name origin/release/name 例子:git flow release track v0.1release finish用法: git flow release finish [-Fsumpk] <version>功能: 完成由version指定的release分支的开发,将其合并到develop和master分支,并为该分支创建一个tag参数: -F执行操作前先执行fetch-s对新建的tag签名-u签名使用的GPG-key-m使用指定的注释作为tag的注释-p当操作结束后,push到远程仓库中-k保留分支-n不创建tagversion版本号等价的Git命令:1. 如果设置了 -F 参数,下载更新1.1 git fetch -q origin master1.2 git fetch -q origin develop2. 合并回master分支2.1 git checkout master2.2 git merge --no-ff release/version3. 如果没有设置 -n 参数,创建tag 3.1 git tag4. 合并回develop分支4.1 git checkout develop4.2 git merge --no-ff release/version5. 如果没有设置 -k 参数5.1 git branch -d release/version6. 如果设置 -p 参数6.1 git push origin develop6.2 git push origin master6.3 git push --tags origin6.4 git push orign :release/version #删除远程仓库中的release分支例子: git flow release finish -p v0.1十五,参考文档/posts/a-successful-git-branching-model//getting-started-git-flow//logs/103552611.html。