我目前正在寻找git-flow,并试图弄清楚如何将它用于我参与的项目.
我查看了各种git-flow教程,我对git非常熟悉.因此,我不需要任何关于git的技巧,而是直接使用git-flow的工作流程.
情况如下:
当我重新定义一个版本(让我们称之为1.0)时,这就得到了开发的分支,这很好.现在让我说我开始研究2.0,添加新功能.当然,一旦完成,我想将它们合并到开发中.现在1.0上的修复很好,所以我们也说我生成了几个版本1.0.1,1.0.2等.所有这些也将更新开发分支,这也很好.到目前为止,麻烦,我可以独立开发2.0和1.0.x的修补程序的功能.
但是,假设某人要求1.1版本的新功能.现在我有一个问题.如果我创建一个功能分支,这将基于开发分支,它可能已经包含2.0内容,我可能不希望在1.1版本中.
有一种简单的方法,可以独立处理这些2.0和1.1的变化吗?
我已经看到了几种可能性:
在开发的最后发布位置创建一个新分支.将开发重新定位到此位置并重命名另一个开发分支.但是,此分支不包含1.0.1等的任何修补程序.
在2.0完成之前,不要合并2.0的功能.然而,在最后一刻,我将不得不将大量未合并的更改保持打开状态.如果2.0发布并且之后要求更改为1.0.x,这也无济于事.
这对git flow来说有可能吗?即,一旦新版本的工作开始甚至完成,早期版本的版本是基于什么?
我非常喜欢Gitflow分支模型
http://nvie.com/img/git-model@2x.png,
但我不确定在哪里放置TDD周期 - 我应该只使用一个功能分支并在每次写入或提交时提交通过测试(加上重构后)?创建一个子分支并将"已完成"单元合并到功能分支中?我是应该每次都进行失败的测试,还是只有在通过之后?
以下是我目前在功能分支上所做的事情:
我如何git flow release finish以不要求合并提交消息的方式使用?该-m标志不提供这一点,因为我的预期.
当然,目标是能够以不需要交互的方式编写脚本.
我希望默认情况下将pull请求合并到功能分支中.
我主张使用git流,所以当为一个功能提交一个pull请求时,pull请求需要合并到develop中,而不是master.
一些管理人员评论说,作为人,团队领导可能会忽略这一事实并将错误的拉取请求合并到主人,导致后期发布问题.
我们希望降低合并地狱的风险,因此这将大大有助于实现这一目标.
编辑:我正在使用名为hubflow的gitflow分支(http://datasift.github.com/gitflow/).默认情况下,创建 git hf feature start [tik-123] 要素分支时,会根据规范创建要素分支,但也会将其推送到原点.我们想要这个用于合作.功能完成后,开发人员将转到github中的功能分支并发出拉取请求.然后,如果要在sprint中发布该功能,团队负责人将检查pull请求并将该功能合并到dev中.
我们在最新的iOS项目中使用Git Flow,我正在尝试使用QA的方式,以便他们可以测试最新版本,以及测试新功能,而无需担心修复了哪些错误哪个分支.
目前,他们已经在release/v1.0.1分支机构进行了测试,该分支机构已经修复了多个错误release/v1.0.同时,我一直致力于为v1.1发布计划的新功能,但同时从develop分支机构分支出来release/v1.0.1,因此没有任何错误修复.
今天,QA部门希望将我的新功能用于试驾.但是,如果我从我的分支创建它们,那么他们已经重新测试和关闭的错误修复都不在那里.因此,我会收到大量关于已经重新引入的错误的投诉和恐慌......我想避免哪些错误!
那么,让他们测试这个的最佳方法是什么?我可以合并release/v1.0.1到我的功能分支,但是我应该确保在发布develop之前我没有合并回来release/v1.0.1...而且我想在一定程度上,这打破了Git Flow方法.我可以创建一个全新的分支,仅用于QA测试,它将我的功能合并release/v1.0.1,但是我如何处理他们在这个分支上找到的任何错误?在QA之后,我将它合并到哪里?
最重要的是,我必须考虑构建号和版本号,以便它们有意义.目前,版本号是用于发布的版本号,并且构建号随着QA的每个新构建而递增.但是,如果他们从两个独立的分支接收构建,我最终可能会发生构建数字冲突,这会引起混淆.
处理这些问题的最佳方法是什么?
我有两个分支机构dev& master. 我正在使用位桶。
我需要从开发分支中挑选一些提交。
然后需要为master分支创建拉取请求。
由于我的dev环境有很多东西,其中一些无法直接合并到master.
因此,从分支中获取提交 <id 1>, <id 2> dev。把他们带到一起。创建拉取请求以与master分支合并。
Git有git-flow支持的GUI前端吗?
我们的团队在Windows和Linux上使用Eclipse IDE.管理着用git-svn 逐渐感染它们,现在正在寻找下一步来利用真正分支的力量(而不是git-svn-rebase/dcommit).Git-flow似乎或多或少都是我们现在所需要的.然而,我们中的一些人仍然依赖于GUI,它使一切变得更容易销售和提升.
所以,理想情况下,我正在寻找一种从Eclipse访问它的简单方法.EGit似乎还不支持它 - 我正在考虑将它们作为外部工具添加.欢迎提出想法 - 在Eclipse中或在Eclipse之外.
如果上面的答案是否定的,这可能是GUI上瘾者的问题吗?
我知道git-flow工具实际上非常薄,通过手动执行带有或不带gui的'raw'命令很容易实际跳过它(例如,我发现在gitk中操作分支很方便).
一方面,我更愿意尽量减少手工工作,减少错误空间(再次考虑团队的经验).OTOH,我的猜测是我们可以开始只使用develos/release/hotfix分支(稍后引入功能分支),在这个设置中人们只需要正常拉/推.他们不会看到很多git-flow - 它只会作为设置发布和东西的人(大多数是我:)的帮手.这有意义吗?
注意:实际上git-svn/trunk仍然存在 - 对于更偶尔的非git用户.我计划将其与'develop'保持同步(显然忽略了合并历史的压缩合并).希望这将是流畅的名言吗?
我已经使用git flow几个月了,它运行得很好.我想自动化"凹凸版"操作.
项目是PHP,footer.php有一个令牌替换为当前的发布标记.我确信,随着git日志和PHP文件的一些问题,一切都应该解决,但我认为有人之前做过这个...
有任何想法吗?
是否可以使用git-flow重命名功能分支?
我试图寻找了git flow help和git flow feature help,也是混帐流的cheatsheet,但也没有什么.
或者,只是使用它是否安全git branch -m feature/new_name?