git-flow应用流程

来源:互联网 发布:简单 php接口开发实例 编辑:程序博客网 时间:2024/06/05 00:46

开始
为了自定义你的项目,Git flow 需要初始化过程。

★ ★ ★

初始化
使用 git-flow,从初始化一个现有的 git 库内开始:

git flow init
你必须回答几个关于分支的命名约定的问题。
建议使用默认值。

特性
为即将发布的版本开发新功能特性。
这通常只存在开发者的库中。
★ ★ ★

增加新特性
新特性的开发是基于 ‘develop’ 分支的。

通过下面的命令开始开发新特性:

git flow feature start MYFEATURE
这个操作创建了一个基于’develop’的特性分支,并切换到这个分支之下。

完成新特性
完成开发新特性。这个动作执行下面的操作.

合并 MYFEATURE 分支到 ‘develop’
删除这个新特性分支
切换回 ‘develop’ 分支
git flow feature finish MYFEATURE
发布新特性
你是否合作开发一项新特性?
发布新特性分支到远程服务器,所以,其它用户也可以使用这分支。

git flow feature publish MYFEATURE
取得一个发布的新特性分支
取得其它用户发布的新特性分支,并签出远程的变更。

git flow feature pull origin MYFEATURE
你可以使用 git flow feature track MYFEATURE 跟踪在origin上的特性分支。

作一个release版本
支持一个新的用于生产环境的发布版本。
允许修正小问题,并为发布版本准备元数据。
★ ★ ★

开始准备release版本
开始准备release版本,使用 git flow release 命令.

它从 ‘develop’ 分支开始创建一个 release 分支。
git flow release start RELEASE [BASE]
你可以选择提供一个 [BASE]参数,即提交记录的 sha-1 hash 值,来开启动 release 分支. 这个提交记录的 sha-1 hash 值必须是’develop’ 分支下的。

★ ★ ★

创建 release 分支之后立即发布允许其它用户向这个 release 分支提交内容是个明智的做法。命令十分类似发布新特性:

git flow release publish RELEASE
(你可以通过
git flow release track RELEASE 命令签出 release 版本的远程变更)

完成 release 版本
完成 release 版本是一个大 git 分支操作。它执行下面几个动作:

归并 release 分支到 ‘master’ 分支
用 release 分支名打 Tag
归并 release 分支到 ‘develop’
移除 release 分支
git flow release finish RELEASE
紧急修复
紧急修复来自这样的需求:生产环境的版本处于一个不预期状态,需要立即修正。
有可能是需要修正 master 分支上某个 TAG 标记的生产版本。
★ ★ ★

开始 git flow 紧急修复
像其它 git flow 命令一样, 紧急修复分支开始自:

git flow hotfix start VERSION [BASENAME]
VERSION 参数标记着修正版本。你可以从 [BASENAME]开始,[BASENAME]为finish release时填写的版本号

完成紧急修复
当完成紧急修复分支,代码归并回 develop 和 master 分支。相应地,master 分支打上修正版本的 TAG。

git flow hotfix finish VERSION
命令
git-flow commands

总结
1.关于git-flow:
①安装git-flow,我用的是homebrew安装的,brew install git-flow
②查看分支,git-flow,会出现如下结果:
init Initialize a new git repo with support for the branching model.
feature Manage your feature branches.
release Manage your release branches.
hotfix Manage your hotfix branches.
support Manage your support branches.
version Shows version information.
每个分支功能已介绍,不多说。
③先初始化 git flow init,并切换到develop分支,git checkout develop
④feature分支是基于develop分支的,git flow feature start [feature name],这个分支创建了一个develop的特性分支,并切换到该分支下。
发布feature分支到远程服务器,所以,其它用户也可以使用这分支。git flow feature publish [feature name]
取得其它用户发布的新特性分支,并将远程变更pull过来。git flow feature pull origin [feature name]
feature分支开发完后,在项目里创建一个changlog.md,每次修改的内容都在里面备注修改的内容,
然后进行一系列的git操作,提交到远程。
git pull(将其他人的改动先pull过来)
git add .
git status
git commit -m “”
需要合并到develop分支,git flow feature finish [feature name],这样就删除了feature分支,切换到了develop分支。
这时候push,git push
⑤从develop创建release分支,即预发布。git flow release start [release name]
在预发布上修改完成后,在changlog.md里加入修改的内容,
然后进行一系列的git操作,提交到远程。
git pull(将其他人的改动先pull过来)
git add .
git status
git commit -m “”
合并release到master和develop分支,用release名打tag(即版本号),移除release分支,git flow release finish [release name + 版本号],
这样切换到了master分支,并在master上创建了一个tag,此时push,git push
⑥线上环境有可能会出现问题,有可能是需要修正 master 分支上某个 TAG 标记的生产版本,所以要创建一个线上修复版本,即hotfix,git flow hotfix start [BASENAME],
当完成紧急修复分支,在changlog.md里加入修改的内容
然后进行一系列的git操作,提交到远程。
git pull(将其他人的改动先pull过来)
git add .
git status
git commit -m “”
代码归并回 develop 和 master 分支。git flow hotfix finish [BASENAME],
此时push,git push

原创粉丝点击