我开始使用和学习 git-flow。通过阅读这篇文章https://jeffkreeftmeijer.com/git-flow/,它指出每个功能分支合并都将使用 --no-ff 参数,考虑git merge到功能分支的目的,该参数是有意义的。
问题是我正在一个空的存储库中测试 git-flow,但我无法弄清楚为什么使用该命令从功能分支进行的合并git flow feature finish "feature-name"始终使用快速转发。
我无法想象为什么要快进功能分支的原因。我在这里错过了什么吗?
当使用 Git Flow 或存在多个稳定分支的类似工作流程处理项目时,我创建了许多功能分支(feature/do-something-1、hotfix/fix-bug-1等)。
有时我需要清除本地分支列表,因为实际上不可能用数十个基本分支来管理它们。我通常通过将分支名称复制并粘贴到命令中来一次删除它们git branch -d。但需要很长时间才能删除整个存储库并再次克隆。
我想在一个命令中删除除master和develop之外的所有内容(无需编写额外的 shell 脚本/别名),但我在互联网上找到的所有解决方案只允许您删除除一个分支(master例如 )之外的所有内容。这不是一个合适的解决方案。有人遇到过类似的问题吗?
我有3家分店
开发,掌握和使用git flow feature start创建的功能分支。
现在,我想将由功能生成的提交合并到单独的修补程序中,这样就可以将其合并到master中,而无需将developer分支合并到master中。我该怎么做?
为了使
开发有100多个提交,这些提交是为单独发行的,
我从开发人员分支出来,并希望将其制作为单独的修补程序。
问题是hotix是一个主分支,因此如果我执行git merge功能,git会将所有开发人员提交与我对该功能的少数提交进行合并。
问题是。如何挑选功能?
编辑:
@Pigueiras
我更喜欢在这种情况下绘制图表。

我只需要将红色标注的提交从功能转移到修补程序即可。
我对Git很新,并开始使用GitHub for Windows.现在我已经学会了如何打开一个Git bash ....并想要将Git Flow安装到其中.
我正在尝试按照这里的步骤: - https://github.com/nvie/gitflow/wiki/Windows
在安装过程中,当我尝试使用PortableGit文件夹的路径运行msysgit-install脚本时,脚本无法说:
contrib/msysgit-install.cmd: line 1: @echo: command not found
contrib/msysgit-install.cmd: line 2: setlocal: command not found
Run Code Online (Sandbox Code Playgroud)
等等...
有什么我做错了,还是我的bash没有正确设置?
我通过右键单击GitHub for Windows中的项目并选择"在这里打开shell"来访问bash.
请帮忙.
有可能使用git-flow(或命令的vanilla git链或其他gitXXX糖果)在master(即发布)和开发分支上拥有一组不同的文件吗?
由于git repos用于部署(见下文),我希望我的开发分支包含严格的源文件,但是当我将它合并到master时,我希望master(release)分支还包含发布/编译输出,zip文件,优化资源等
注意:该问题寻求:
一个示例场景和git/git-flow命令可以保持develop和其他分支清理编译/构建的东西,而只有master它们在一个额外的./build目录中.
两个分支仍应保持良好同步,整个分支/合并过程应自动,无痛且安全.也许有一天它会成为标准的git-flow功能和实践.
我知道这不推荐,繁琐,非最佳等,但请记住:
git repos越来越多地用于部署 - 例如,请参阅http://bower.io,它使用严格的git repos和semver标签来部署编译的东西.
这个问题是否可能,不论是否是可取的或良好的做法.如果不可能,则需要一个好的解释.
我们最近开始git-flow在我们公司使用,我们遇到了以下问题:
我们有一个DEV_MODE布尔值来控制应用程序中的日志记录级别,我们希望开发分支始终具有DEV_MODE=true.
但是,在发布版本时,我们将更DEV_MODE改为false.
当我完成发布时git-flow,它会合并DEV_MODE=false到开发分支中.
我有一个钩子,我可以用来防止这种情况,或者可能告诉git如何合并发布分支中的文件以进行开发?
我们一直在为我们的iOS项目快乐地使用git flow.然而,今天我发现了一些事情,这意味着我们实际上并没有遵循git flow规范.
当我们开始对发布版进行最终测试时,我们会向组织内的数百人发布BETA版本.现在,这个BETA基本上是一个候选发布者,因为没有发现其他错误,在这种情况下,它已经准备好发布App Store.由于有超过7天的审核时间,我们总是将此BETA上传到iTunes Connect并将其设置为等待审核.
在合并其发布分支后,我们从主分支上的标记释放此BETA.但是,git flow规定主分支必须反映当前正在生产的内容.现在,总是有一个等待时间,直到它实际上在生产中(所以我们不能打破git流模型),但是如果在这个BETA中发现了严重的错误,我们将它从审查队列中删除,这意味着它不会被释放,现在最新的主人承诺并没有反映出生产中会发生什么.
你如何在工作流程中解决这个问题?
git continuous-integration continuous-deployment ios git-flow
我目前正在关注这里描述的流行的git工作流程.
它没有讨论的一件事是如何处理单元测试.假设我写了一些代码并提交develop.我想为它编写测试,但我不希望它在我的develop历史中,我想将测试分开,以便当我看到时git log我只看到主代码的更改.但是,如果我将测试提交到一个单独的test分支,我将不得不来回合并开发/测试,导致一个荒谬的合并提交杂乱.
你如何在git存储库中管理单元测试?
这是一种尝试跨分支实施有条件构建的尝试,由于BAM-11257(自2012年以来一直开放,至今仍未完成),因此默认情况下是不可能的。
内容:
develop分支已实施(无效)方法:
(?=(feature.*|bugfix.*)).*$),然后在其阶段和工作中提供所需的行为。(?=(hotfix.*|release.*)).*$),然后分阶段使用自己的行为develop。这可以正常工作,每个分支都有基于所需行为的自己的构建计划。但是,将任何分支合并到时develop,这三个构建计划是并行启动的,因为它们三个develop在其“存储库”中均作为原始分支条目。
问题:如何避免这种副作用?我们如何只为某些分支类型而不是原始分支(在这种情况下develop)指定构建计划?
我知道Bamboo需要一个起源,它可以根据某种策略(正则表达式)从其分支克隆新的构建计划,但是我们如何才能阻止它为原始分支运行构建计划呢?或者,我们可以定义一个构建计划的分支类型分别比它的起源和基于动态名称(例如feature-something,feature-bob)?
(关于最后一点:在“存储库”中,我们可以指定一个分支作为源,但这是一个静态值,我们不能在其中放置一个正则表达式,我想这可以解决整个问题)
每当我在团队中寻找使用git的正确方法时,我们总是会提到git-flow。
我们从一开始就开始将此计划用作圣经。
时间的流逝,我们最终发现将master保留为带有标记的commit的稳定分支是浪费时间。
为什么要标记稳定的提交,然后按PUSH以掌握已经标记的相同版本。标签存在,您可以随时返回此提交。为什么要麻烦我保留此分支仅包含标签?
这是我们使用的Git-Flow,它的工作原理就像一种魅力。
Master:实际上是我们的开发分支Release:我们创建一个release分支来做最后一个发布测试用例,然后在需要时添加修订。功能:我们从Master分支创建功能,然后将拉取请求发送给master。
实际上,它与gitflow相同,没有包含稳定的分支。
这样做的另一个优点是,MASTER是DEVELOP分支。因此,当新的队友进入该项目时,他可以从克隆项目开始,而他的主人已经与实际开发保持同步。
在图像中:
我的问题是,如果您只能用相同的结果管理4个分支,为什么还要使用原始的git-flow和5个分支?
git-flow ×10
git ×9
git-branch ×2
bamboo ×1
bower ×1
git-merge ×1
git-workflow ×1
github ×1
ios ×1
java ×1
maven ×1
merge ×1
unit-testing ×1