问题标签 [feature-branch]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - 将合并提交融合在一起
这个问题与git rebase interactive: squash merge commits together非常相关。
假设您正在为某个项目编写新功能。你从某个分支开始,比如说devel
,然后为你的特性构建一个分支,feature/X
。有时您也会在项目中发现一些问题,因此您决定构建第二个分支,称为fixes
,从devel
.
由于您需要不断地应用修复程序,因此您会不时地feature/X
这样做git merge fixes
,因此您最终会遇到以下情况:
由于这从未被推动(所以我不会破坏其他人的历史),我想将所有合并分解为一个,获得以下结果:
获得此结果的一种方法是
这实际上完成了工作,但迫使我创建另一个分支feature2
,稍后将出现在合并的提交消息中。此外,当您在两个以上的分支上工作时,请尝试这样做!
有没有更优雅的方式来做到这一点?这似乎是一个值得一个方便命令的操作,所以我认为有一些捷径。
谢谢你的帮助
version-control - 功能切换与功能分支
什么是“功能切换”和“功能分支”,它们之间有什么区别?
优缺点都有什么?为什么一个比另一个好?
我在 Google 上找到了一些关于此的文章,并且我倾向于属于“功能切换”阵营,但我不相信“功能切换”在所有情况下都是更好的选择。
git - 是否有使用 git 和 Feature Branch 工作流发布修补程序的约定?
与小团队(不是Gitflow )一起使用Feature Branch工作流时,是否有约定将热修复应用到以前标记为 master 的版本?
例如:
- v1.0.0 在特定时间点发布,此时会创建一个标签。
- 开发人员继续在功能分支上工作,这些分支在完成和审查后合并到 master 中,为遥远的未来 v1.1.0 版本做准备。
- 客户开始遇到问题,并且认为有必要发布 v1.0.0 的修补程序(称为 v1.0.1)而忽略 v1.1.0 的进展。
使用 Gitflow,分支结构很明显,因为 master 仅由标记的版本组成——从 master 分支、修复、将修复合并到 master、从 master 发布和标记。对于 Feature Branch 工作流程,我想知道这通常是如何处理的,并保留了易于理解的历史记录。
svn - SVN:如何定期将一些更改从功能分支移动到主干?
我有一个分支,我正在做一些重构工作,我想定期将一些更改移回主干。
也就是说,部分重构工作可以在完成时移动/精选到主干。
svn 支持这样的工作流程吗?
文档似乎表明了“分支、同步、同步、同步、重新整合所有、删除”模式。 http://svnbook.red-bean.com/en/1.7/svn.branchmerge.basicmerging.html
就我而言,我不仅希望分支保持活跃,而且还希望避免可能影响其他开发人员的 svn 更改。(例如搞砸合并跟踪,以便将来的合并变得困难。)
我确实看到了“仅记录”合并部分,但我不确定这是否有帮助。
git - 禁用master(git)中的功能
我们正在开发feature/x
. 我们需要时不时地合并此功能master
,并合并master
回来feature/x
以保持同步。该feature/x
分支也作为远程分支存在,因此在这里变基不是一个很好的选择。
我们希望master
在将来某个时候禁用/隐藏实际功能。事实上,我希望能够创建一个提交 K,master
以便通过将其隐藏在 UI 中来禁用正在开发的功能,但保留底层机制。
我也希望它能够工作,以便当我从master
to合并时feature/x
,我将获得除 K 之外的所有提交。此外,当我从feature/x
to合并时master
,提交 K 仍应适用于master
,保持隐藏功能。
我试过了
master
这有效,除了在我这样做时重新启用该功能
因此,似乎与-s ours
from master
tofeature/x
合并不会导致双向合并。因此,每次我从feature/x
to合并时,master
我都必须再次禁用该功能,然后这个禁用提交将流回feature/x
等等。有没有更好的办法?
git - Git - 在多个分支上合并功能分支
我有一些关于 git 和良好实践的问题......
git仓库的状态是:
我有一个大师,有 2 个版本:1.0 和 1.1。
必须开发一个新功能,并且必须在 2 个分支上应用:V1.1 和 master。
有什么更好的方法来做到这一点?我想我必须创建一个功能分支,但基于哪个?大师还是V1.1?
一旦开发得到验证,最好的合并策略是什么?合并?樱桃采摘?变基?
功能分支将被推送到上游,因为我不会是唯一一个处理它的人。也会有不止一个提交。
谢谢你的帮助 !
如果功能分支基于 master,我将拥有:
功能开发完成后,我可以轻松合并 master 和 topicbranch 以将新功能添加到 master 中。
但是如何将提交 E、F 和 G 添加到 otherbranch 中(就在 CB 之后)?这就是我认为的地方
不起作用,因为它还会添加提交 D。
git - Git Flow:创建、测试和部署“功能”分支
我已经在我的公司使用 git-flow 有一段时间了,并且多次遇到某种情况,这让我感到困惑。我正在尝试找出一种最佳实践,通过 git-flow 将新功能集成到现有的已发布站点,我需要在其中测试这些功能,然后将它们发布到单独的分组中。
我已经建立了一个登台和生产站点。当我的开发分支看起来不错并且我想将我的更改从主站点部署到生产站点时,我从我的开发分支部署到暂存站点并运行 git-flow 版本。只要我可以一次发布所有更改,这就可以正常工作。我最近收到了许多客户要求分批发布变更单的请求——这意味着我将致力于 4 个功能,他们希望在 1 周内发布其中 2 个功能,在 2 周内发布另外 2 个功能。我认为仅使用 git-flow 功能分支并“完成”需要一起发布的分支就可以解决我的问题,但它给我留下了更多问题
当我为每个新特性创建一个特性分支时,我发现很多时候我需要使用一些我已经提交给另一个特性分支的 css 或 js(因为它也属于那个分支)。我也有一种感觉,当我 git-flow “完成”这些分支回到开发时,我将不得不处理很多合并冲突(因为它们的提交共享很多相同的文件)。客户还希望看到我所做的所有更改的活动版本,当我将它们孤立到不同的功能分支中时,我不确定如何将它们一起显示,除非我将它们合并或重新设置到开发中分支并推送到暂存站点。这会破坏我批量发布它们的机会。我考虑过可能创建另一个分支来测试并将我的功能分支重新设置在这个分支上,
我似乎找不到任何可以满足这些要求的工作流程,因此我将不胜感激。
git - 当我从功能分支中“git pull --rebase origin development”时会发生什么?
假设我有一个名为 的功能分支,它与它所基于的FeatureA
(remote) 不同步。development
通常我会通过调用(在自然地git rebase development
同步我的本地开发之后)来重新设置我的分支。origin/development
今天,我做了不同的事情,而是git pull --rebase origin development
从我的功能分支调用。现在,有什么区别?
svn - 重新集成分支而不合并主干更改
我用乌龟svn。但总的来说,我对 svn 还是很陌生。不过,我对 git 有一些经验。
在文档中它说
重新整合分支
此方法涵盖了您已按照 Subversion 书中讨论的那样创建功能分支的情况。所有主干更改都已逐周移植到功能分支,现在功能已完成,您希望将其合并回主干。
据我了解:功能分支的正常工作流程是,创建一个功能分支,在其上进行开发,经常合并来自主干分支上的错误修复的修订范围。功能完成后,对主干更改进行最终合并,然后将分支重新集成到主干中。
所以我有一些问题:
- 这个工作流程是否正确
- 如果我在重新集成功能分支之前不合并来自主干分支的更改会发生什么
- 如果我从完全更新的功能分支到主干分支进行正常合并会发生什么
- 为什么这么复杂,svn 的本意是比 git 对用户更友好,但尤其是合并,你必须指定要合并到功能分支的修订,并且从不同的合并选项中进行选择似乎比等效的 git 功能要复杂得多(我必须在我的公司使用 svn,因为其他开发人员使用它,但他们没有分支),除非我做错了什么
mercurial - 我们可以在teamcity的mercurial的pull url中使用参数吗
需要知道我们是否可以在 teamcity mercurial 设置中从 URL 中使用 PULL 更改中的参数。我的要求是在运行时传递分支名称参数。如果我在默认分支设置中使用该参数,它工作正常,但我需要将此设置与原始 URL 连接
在我正在设置的 Teamcity VCS mercurial 设置中:-
如果我使用上述设置,它将进入一个无限循环的获取更改但没有任何反应。请指导如何在 URL 中连接参数