标签: git-flow

如果我在git flow init中犯了错误怎么能恢复?

我跑了git init,选择第一个分支时犯了一个错误.现在我想重新运行它来更改设置,但它从不再问第一个问题.

Which branch should be used for bringing forth production releases? 
   - develop

Branch name for production releases: [] develop

Which branch should be used for integration of the "next release"?

Branch name for "next release" development: [develop] ^C
Lymnaea:boxes (develop) $ git flow init

Which branch should be used for integration of the "next release"?

Branch name for "next release" development: [develop]
Production and integration branches should differ.
Run Code Online (Sandbox Code Playgroud)

如何撤消第一个init运行,以便我可以将分支设置为master?

git-flow

16
推荐指数
1
解决办法
4403
查看次数

如果存在分支,则每晚构建for release分支

我想为我的发布分支设置一个每晚构建.因为我正在使用git-flow,所以我并不总是有一个relase分支,所以我希望它能够构建它,如果它能找到一个模式为的分支:

refs/heads/release-*

知道怎么让teamcity为我执行这个动作?

teamcity git-flow

15
推荐指数
1
解决办法
1790
查看次数

你如何发布一个错误修复到以前的版本并标记它?

我们正在尝试将gitflow应用到我们的工作流程中.对于修补程序,Gitflow非常简单.但是,我不清楚如何修复以前版本的系统中的错误.

例如,我们只是说我们的版本是8.1.3,我需要修改7.1.5的错误.我可以根据7.1.5标签创建一个分支,但是如何将其重新转换为master并标记它?甚至可以使用Git吗?我只想保留发布分支并在那里提交和标记,但我不确定这是否是正确的做事方式.

git git-flow

15
推荐指数
1
解决办法
3466
查看次数

Git-flow重新打开已完成的功能

我正在尝试使用gitflow一个成功的Git分支模型.

我有一段时间处理功能并完成功能

git flow feature finish my-feature
Run Code Online (Sandbox Code Playgroud)

在继续工作的同时,我意识到我有一些忘记添加的东西 my-feature

或者有时我正在开发一个不同的功能,并希望my-feature再次添加一些内容......

这样做的方法是什么?有没有办法再次重新开放my-feature?我是否只是将变更纳入开发?或者打开另一个功能?

git branching-and-merging git-flow git-branch

14
推荐指数
1
解决办法
3965
查看次数

Git工作流程和Gerrit

我正在尝试使用Gerrit实现'git-flow'类型的工作流程,但我似乎无法弄清楚最后一块拼图.

我的问题有两个先决条件:

  • Gerrit只会执行合并到一个分支
  • 我不允许将合并提交推送到Gerrit.在批准更改后,Gerrit必须完成合并

我想要解决的是以下内容.考虑这个git情况:

Master 0 
        \
         \
Develop   0-----0-----0-----0
Run Code Online (Sandbox Code Playgroud)

有一个master分支有一个commit和一个develop分支,它是从master分支出来的,有几个额外的提交.过了一会儿,开发分支被合并回master,以创建下一个生产版本.开发人员使用开发和严格变基的主题分支.在推动之前,他们的承诺总是在最新的上游开发之上进行重新设计.这应该导致线性历史记录并且只有快进提交.

现在假设某人从master创建了一个修补程序分支并合并回master:

Master 0--------0 HF 
        \
         \
Develop   0-----0-----0-----0
Run Code Online (Sandbox Code Playgroud)

此提交现在仅合并到主分支,但开发人员需要在他们的开发分支中进行此提交,以在其更改中包含错误修复.通常你会合并master分支来开发develop分支,但考虑到我的前提条件,这是不可能的,因为它会创建一个本地合并提交.

我的问题是:如何将主分支中的新提交合并到本地开发分支中,以便开发人员的任何新更改都包含错误修复?理想情况下,我会修改我的脚本,首先将bugfix更改应用于本地开发分支(合并但没有合并提交),然后重新设置dev的提交并推送.这样,错误修复将自动添加到他们的新更改中,并将被视为这样,作为新提交的一部分,而不是单独的提交.

我一直在考虑可能的解决方案:

  • Cherry选择了对开发分支的提交.我相信,当下次开发与master合并时,这将始终导致重复提交.有没有办法解决?
  • 如此处所述进行重新定位:http://davitenio.wordpress.com/2008/09/27/git-merge-after-git-cherry-pick-avoiding-duplicate-commits/ .这可能会导致问题,因为开发分支已发布,或者不会发布?

我希望我的问题很明确.如果需要进一步澄清,请告诉我.我知道我的工作流程非常严格,但与Gerrit结合使用会非常理想.如果无法完成,那么我可能会允许合并提交......

git rebase cherry-pick gerrit git-flow

14
推荐指数
1
解决办法
8395
查看次数

git子树在存储库的根目录上合并(w.git-flow)

我们有一个基于git-flow的存储库,我们在开发分支上添加了一个外部库作为子树(使用Atlassian SourceTree的git子树).

Project/
  Library/
    X/
    Y/
    Z/
Run Code Online (Sandbox Code Playgroud)

后来我们做了一个git flow release,将开发中的变化合并为主(发布).

问题是当检出master时,Library的内容放在存储库的根目录而不是在Library中,就像它git subtree在合并期间丢失了前缀一样.

Project/
  X/
  Y/
  Z/
Run Code Online (Sandbox Code Playgroud)

知道出了什么问题吗?

git git-flow git-subtree

14
推荐指数
1
解决办法
1048
查看次数

GitFlow:发布和主分支有什么区别?

我刚刚看了一下这个gitflow备忘单.我不明白这个release分支.

谁能告诉我releasemaster分支之间的区别?

git git-flow

14
推荐指数
3
解决办法
7209
查看次数

GitFlow:首先合并为master还是在prod发布之后?

学习GitFlow和我有一些问题,我在任何我读过的文档/文章中都看不到这些问题.

在某些时候,develop需要将分支上的代码部署到QA /暂存环境并进行严格测试.因此,使用GitFlow,您可以删除release分支develop,然后部署release到所述分段环境.

首先,只是想快速澄清一些事情:第一次特定的项目/回购经历这个过程,你实际上是在分配/创建这个新的release分支develop,吗?而且,在未来的其他所有时间,你只是合并 developrelease,是的

那么QA测试releasestaging env上的分支,看起来都很好,我们已准备好部署到prod.你呢:

  • 部署到prod 然后合并releasemaster?; 要么
  • 合并releasemaster部署督促?

我问,因为在前一种情况下你需要release分支部署到prod,然后部署到prod,然后合并到master.这听起来还不错,但是prod和非prod环境通常并不完全相同,而且在praging服务器上激活的第二个代码在staging chokes中运行得非常好.我知道GitFlow支持修补程序分支的概念,但它们保留用于小修复.在需要回滚/撤销释放的复杂修复的情况下,我们现在将"脏代码"(由于某种原因破坏prod的代码)合并到其中master.

在后一种情况下,可能需要数小时甚至数天(特别是如果您需要让IT/Ops参与prod部署)从您合并并放入prod释放请求开始,到prod部署实际发生的时间.在这段时间里,你有一个master分支,上面写着"特征X,Y和Z都在生产中",但它们实际上并非如此.

我想知道GitFlow是否真的以某种方式解决了这个问题,或者两种情况下的已知解决方法是什么.

git github git-flow

14
推荐指数
3
解决办法
3724
查看次数

从Git Flow中删除版本中的功能

我在一个拥有大型Java代码库(300k +代码行)的团队中工作,最近采用Git作为源代码控制(从ClearCase迁移).我们使用Git Flow作为我们的分支策略.有一些我们经常遇到的用例,我们一直在努力.

  1. 我们已将所有功能合并到开发分支中,以便在即将发布的版本中使用.当我们接近发布时,事实证明一个功能无法上线(由于客户端没有准备好,或者其他原因).创建发布分支的最佳方法是什么,但省略了一个特定功能(跨多个提交)?该功能需要包含在下一个版本中.我们之前尝试过的是在所有提交上执行"git revert",创建release分支,然后在恢复的提交上执行"git revert".这是一种非常痛苦的方法,特别是对于大型功能.

  2. 我们已经创建了发布分支,但在发布之前,确定需要删除一个功能.与第一个用例类似,此功能需要能够进入以下版本.因此,在提交中执行"git revert"并不能完全解决它,因为当我们执行"git flow release finish"时,恢复将返回合并到develop分支中.

如Git Flow模型中所述,所有提交都是在功能分支上进行的,而不是直接在开发分支上进行.当某个功能完成并准备好下一个版本时,它将被合并以进行开发.在下一个版本的时候,发布分支是由开发创建的.在对发布进行回归测试并在必要时进行修复之后,它将进入生产阶段并合并到master,然后在发生错误修复的情况下重新开发,并标记版本号.当我们认为在下一个版本中出现的功能最终需要被忽略时,上述问题就出现了.

处理这些情况的最佳方法是什么?在这两种情况下,分支机构已经被许多开发人员发布和删除,因此弄乱历史可能会造成困难.我知道这些不太理想,但不幸的是情况已经超出我们的控制范围.

git version-control merge git-flow

13
推荐指数
1
解决办法
2296
查看次数

承诺直接在Git Flow中开发分支?

我目前正在将项目迁移到Git Flow,我非常感谢它提供的灵活性.

问题是,在以下情况下,我可以直接处理并提交到开发分支吗?

  • 一个小小的拼写错误,
  • 或一个小方法级别的重构,
  • 或者在合并功能后修复了一些错误.

我已经阅读了创作者的帖子,并没有提到这种情况.你们在现实世界中做了什么?

git version-control branch git-flow

13
推荐指数
2
解决办法
2131
查看次数