git flow使用

查看基本配置信息:git config --list 初始化:git flow init 创建了两个分支,查看: git branch 创建开发分支:git flow feature start agents_test 查看:git branch push 一个 feature branch 到远端:

git flow feature publish agents_test
或 git push origin feature/agents_test

更新
git pull origin feature/agents_test
从远端 branch: git flow feature track agents_test 或 git checkout -b agents_test -t origin/feature/agents_test 合并到 git flow feature finish agents_test

参考:
http://ihower.tw/blog/archives/5140
以下来自:
http://www.starming.com/index.php?action=plugin&v=wave&tpl=union&ac=viewgrouppost&gid=33263&tid=19584
开始使用git-flow

$ git flow init

新建过程中会为你的各种branch类型起一个名字,推荐使用默认。

master branch

该branch永远处于 production-ready的状态,用于发布,并作为长期分支一直保留,所有产品正式发布出去的内容都来源于该分支,对于每次发布还应有其相对应的tag。

develop branch

一直存在于branch中。

feature-* branch

当有一个新的功能进行开发时,推荐将开发过程放在一个新建的feature分支里。该分支从develop中建立,开发过程中可以共享给团队其它成员,也可以从服务器取到其它成员的feature branch。在功能完成时,将其合并回develop分支并册除该分支。
  • git flow feature [list] [-v] 列出所有的features
  • git flow feature start [-F] <name> [<base>] # 开始一个新的特性分支
    • -F fetch from $ORIGIN before performing local operation
  • git flow feature finish [-rFk] <name|nameprefix> # 结束分支
    • -F fetch from $ORIGIN before performing finish # 在新建之前,先从$ORIGIN获取最新代码。
    • -r rebase instead of merge #使用 rebase 代替默认的 merge,只生成一次commit 记录。
    • -k keep branch after performing finish # 在完成之后仍保留该分支,默认会删除。
  • git flow feature publish <name> # 将该branch发布到origin上与其他人共享。
  • git flow feature track <name> # 从$ORIGIN上获取一个他人共享过的branch,并在本地创建。
  • git flow feature diff [<name|nameprefix>] # feature branch和develop之间所有的差异。
  • git flow feature rebase [-i] [<name|nameprefix>] ?
  • git flow feature checkout [<name|nameprefix>] # 从任一branch切换到指定feature分支
  • git flow feature pull <remote> [<name>] # 获取服务器其它成员的该分支提交。
release branch 在做产品发布时创建的分支类型,在这个分支上做一些配置管理的工作,比如说更改软件版本号之类的。需要注意的是release分支应该从develop分支出来,并且发布结束需要合并回develop和master分支。
  • git flow release [list] [-v] # 列出所有的release分支信息
  • git flow release start [-F] <version> # 新建一个名为<version>的release分支(这里建议使用版本号作为branch名,结束时使用该名字为代码打上tag),新的分支名为release/version.
    • -F fetch from $ORIGIN before performing local operation Start new release named <version>
  • git flow release finish [-Fsumpkn] <version> # 完成该version 的release branch
    • -F fetch from $ORIGIN before performing finish # 在新建之前,先从$ORIGIN获取最新代码。
    • -s sign the release tag cryptographically
    • -u use the given GPG-key for the digital signature (implies -s)
    • -m use the given tag message
    • -p push to $ORIGIN after performing finish # 结束后将代码push到 $ORIGIN
    • -k keep branch after performing finish
    • -n don’t tag this release # 结束时不用给代码打上version的tag
  • git flow release publish <name> # 在$ORIGIN上共享该release 分支
  • git flow release track <name> # 从$ORIGIN上获取一个已被共享的release 分支。
hotfix-* branch 当发布出去的版本有继续fix的问题时,使用hotfix分支类型进行问题修复。需要注意的是hotfix分支应该从master分支出来,并且fix结束需要合并回develop和master分支。
  • git flow hotfix [list] [-v] # 列出所有的hotfix分支
  • git flow hotfix start [-F] <version> [<base>] # 新建一个名为<version>的hotfix分支,分支全名为hotfix/version,可通过参数来选择是基于base而非默认的master。
    • -F fetch from $ORIGIN before performing local operation
  • git flow hotfix finish [-Fsumpkn] <version> # 完成一个hotfix分支
    • -F fetch from $ORIGIN before performing finish
    • -s sign the release tag cryptographically
    • -u use the given GPG-key for the digital signature (implies -s)
    • -m use the given tag message
    • -p push to $ORIGIN after performing finish
    • -k keep branch after performing finish
    • -n don’t tag this release # 不为该branch打上tag

上一篇:
下一篇:

相关文章:

Categories: 博客记录

0 Responses so far.

Leave a Reply