问题标签 [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.

0 投票
1 回答
385 浏览

git - Publishing a feature branch to preview periodically in git

I'm trying to understand the best way to occasionally publish a feature branch into a preview branch for git. Here is my setup:

  1. Client asks for feature.
  2. I develop initial feature and publish to preview/testing site.
  3. Client provides feedback.
  4. I make more changes.
  5. Go to step 3 a few times.
  6. Client is good to go with feature
  7. Rebase feature into single commit pushed to production site.

Note that several different features may be developed at once and there is only one "preview" site where the client can see all these features as they are being developed. My git workflow currently.

So the end result:

  1. I was able to develop the feature in it's own isolated branch and control when it goes to production. It also is rolled up in production as a nice neat commit.
  2. The client can see the feature as I develop it and provide feedback. They can also see that feature along with other features I am developing simultaneously.
  3. The "preview" branch become a little messy as it gets both the "WIP" commits and the final rebased commit. But I don't mind that much as it is just for client preview and I can periodically delete the branch and re-create from master if I want.

My only problem is that I seem to get more conflicts than I would expect. I am thinking this is because staging is getting both the development commits and the final commit. I am also wonder if there is a better way to do this?

0 投票
1 回答
238 浏览

git - 在 Git 中将文件“移动”到他们自己的分支

在 master 中,我有一些文件应该更好地放在功能分支中。我想创建这样一个分支并将文件放在那里,同时将它们从 master 中删除。

我不关心历史,即不需要从以前的提交中删除文件。当我做

HEAD 的情况很像我想要的。但是,当我想将 master 合并到 feature 时,我会遇到问题。我必须处理它还是有这种情况的解决方案?

0 投票
1 回答
91 浏览

git - 有没有办法在保留这些存储库的提交日志的同时清理远程存储库?

我知道如何删除远程分支,所以这个问题不是清理旧的远程 git 分支如何在 github 上管理过时的分支

相反,我的问题是删除旧的功能分支会丢失提交消息以及其中的 JIRA 问题标签。因此,我们将不再能够从 JIRA 看到针对给定问题所做的提交。

有什么方法可以清理、关闭或隐藏 git 分支列表中的远程分支,但不会破坏我们需要 JIRA 的 git 插件执行其操作的消息?

0 投票
2 回答
25656 浏览

git - 如何与多个开发人员共享一个 git 功能(或主题)分支

我正在遵循此处描述的工作流程,因为我发现许多指向此页面的参考资料都是一个很好的工作流程。正如文章中提到的,“功能”分支在开发人员之间共享,但不要转到中央存储库。

假设开发人员“A”使用git checkout -b newfeature develop. 现在假设开发人员“B”也需要处理此功能。这是我的问题。

我做了什么:

  1. 开发人员“B”将开发人员 A 的机器添加为远程
  2. 开发人员“B”运行git branch remoteA/newfeature
  3. 开发人员“B”在这个分支上工作,提交他的工作并将更改推送回 remoteA。

步骤 3 不工作,现在。我收到一条消息:

远程:错误:默认情况下,在非裸存储库中更新当前分支是被拒绝的,因为它会使索引和工作树与您推送的内容不一致,并且需要'git reset --hard'来匹配工作树到头。

远程:错误:您可以在远程存储库中将“receive.denyCurrentBranch”配置变量设置为“忽略”或“警告”,以允许推送到其当前分支;但是,除非您安排更新其工作树以匹配您以其他方式推送的内容,否则不建议这样做。

远程:错误:要压制此消息并仍保持默认行为,请将 receive.denyCurrentBranch 配置变量设置为 'refuse'。

我已经设置了sharedRepository = true,但它没有帮助。

我有两个问题:

  1. 在开发人员之间共享功能分支的正确方法是什么?
  2. 如何将开发人员 B 存储库中的更改推回开发人员 A 的原始存储库?
0 投票
3 回答
5457 浏览

git - 如何在依赖于另一个尚未合并的 git 分支的新 git 分支上工作?

这是我的场景:

  • 我的项目遵循主题分支模式。

  • 我创建了一个分支来修复一些问题,我们称这个分支为problem_fixes。我进行了更改,并提交了一个拉取请求。

  • 我需要开始开发一个新功能,所以我创建了第二个名为 my_feature 的分支并提交了一堆更改。

  • 在某些时候,我意识到 my_feature 依赖于尚未被接受和合并的问题修复(my_feature 分支依赖于第一个分支的一些修复,没有它们我无法取得进展)。

没有纠缠我的项目导致更快地接受和合并我的第一个分支,这里遵循的最佳流程是什么?

我想知道是否需要基于 problem_fixes(而不是 master)启动一个新的第三个分支并合并我对 my_feature 的提交?或者,如果我只是将问题修复合并到 my_feature 并继续工作,是否可以 - 假设问题修复首先合并到主库,当 my_feature 被合并时,理论上应该没问题(?)

0 投票
4 回答
3886 浏览

git - 如何处理实验性的非合并 git 分支?

为测试 bug 的解决方案而创建的 git 分支的当前最佳实践是什么,但由于审查过程表明它们是错误的或有更好的问题解决方案而没有被合并?

一个例子。项目 fizzbuzz 有一个错误报告,报告空字段崩溃。

  • 我创建了一个新分支handle-empty-fields并对该分支进行了两次提交,“解决”了问题。
  • 然后我将该分支提交给 fizzbuzz 项目经理,并将其链接到错误报告中。
  • 有人在我的修复中发现了一个错误,编写了另一个补丁,并且该补丁被接受了。

现在handle-empty-fields我的代码中的代码没用了:它不正确,不能再应用于代码,但在那个错误报告中已经引用了它。

我应该怎么办?保留分支?我很快就会得到几十个废弃的分支,而 git 无法将一个分支标记为废弃或关闭。删除分支?但随后查看该错误报告的人会发现它并得到 404。

人们经常被建议不要对他们的存储库进行rebase,因为这会给其他开发人员带来问题,尤其是下游开发人员。对功能或错误修复分支有什么建议?

更新:看起来 github 从不删除拉取请求中包含的提交。因此,如果您推送更改并将它们转换为拉取请求,您可以稍后删除分支而不会丢失任何更改。好吧,虽然 github 仍在工作;)。

0 投票
1 回答
3818 浏览

git - 在修补程序之后合并 Git Flow 功能分支?

我最近才开始使用 git flow,有些东西我不太明白。首先,我从不直接在开发中做任何事情。如果我做某事,我要么使用启动修补程序或功能。

当我开始一项新功能('sequentialUpgrades')时,我的插件版本为 1.1.5。那是4天前的事了。在过去的 4 天里,虽然还没有完成这个新功能,但我完成了 2 个修补程序,因此将它们合并回 master,然后在完成它们后进行开发,当然我在这两个分支上都有最新的更改,包括修补程序和我在 1.1.7 版...如果我做 a git diff master develop,没有区别。

现在当我回到我的特性分支继续开发这个新特性时,特性分支仍然回到 1.1.5,所以我没有 2 个最新的修补程序。

所以我有两个问题:

  1. 如果有什么方法可以在不搞砸的情况下将最新更改添加到我的功能分支中?

我正在考虑将开发合并到功能分支中,但我认为这不是正确的方法。但是,我真的很想,在开发这个新功能时需要最后两个修复程序。

  1. 如果我无法做到这一点,当我完成该功能时,它现在如何在没有任何冲突的情况下合并回开发?我无法解决这个问题。

因为我早在 1.1.5 就开始了这个功能。在功能分支中,我对文件 access-level.php 进行了重大更改。当我做修补程序时,我可能在同一个文件中更改了 5-6 行。如何将一个完全回到 1.1.5 并进行了一些重大更改的文件合​​并到 1.1.7 的同一个文件中,该文件从那时起也发生了更改?

0 投票
2 回答
745 浏览

svn - Subversion 重新整合分支冲突

我正在使用svn版本控制并有以下问题:

  • 假设我在我的feature branch不断上游变化中开发了一些东西trunk (通过简单地合并它们并解决冲突)。现在,在某个时刻,我进行了最后一次上游合并trunk并解决了冲突。而且,例如,在那之后,merge我以某种方式设法“冻结”trunk- 所有提交trunk都被拒绝并且它始终保持在相同的状态。

  • 这是否保证我执行merge --reintegratefor my时不存在冲突feature branch?或者我错过了一些可能导致它们的其他条件和行动?

0 投票
2 回答
2000 浏览

git - GIT Rebase 一个合作的分支?

读完这篇文章后,rebase 将更改从主分支收集到我的功能分支是有意义的: Git workflow and rebase vs merge questions

如果功能分支位于我的机器本地并且我可以随意重写历史记录,这将非常有用。

但是,如果我在功能分支上与其他人合作怎么办。既然我们的功能分支保存在远程存储库中,我们如何从主分支获取最新更改到我们的功能分支?

所以我们合并?还是有另一种巧妙的 GIT 方法来做到这一点?

提前致谢!

0 投票
4 回答
13693 浏览

maven - 如何使用 Maven 持续构建和部署特性分支?

我的团队正在使用功能分支来实现新功能,并不断将快照构建部署到远程存储库中供我们的用户使用。因此,“部署”实际上只意味着“分发到远程 Maven 存储库”。我们目前只为 master 分支而不是 feature 分支运行持续集成构建,原因如下:我们使用 Maven 构建我们的项目并将 JavaDoc 和源代码与 JAR 一起分发。

我现在的计划是为每个功能分支构建添加一个分类器,并希望在创建和部署这样的工件时使用一个分类器:

  • 分支:主
  • 分类: 无
  • 工件:foo-${version}.jar、foo-${version}-sources.jar、foo-${version}-javadoc.jar

  • 分支:特征-X

  • 分类: myfeature
  • 文物:foo-${version}-feature.jar, foo-${version}-sources-feature.jar,foo-${version}-javadoc-feature.jar

我并不关心工件的确切命名,我只需要功能分支的单独的主、源和 JavaDoc 工件。事实证明,JavaDoc 插件和源插件都没有考虑配置分类器,因此有效地覆盖了为我的主构建创建的工件。

我真的不想更改 artifactId,尽管这可能会解决问题。您如何处理功能分支和与 Maven 的持续集成?