问题标签 [branching-and-merging]

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 投票
15 回答
1859231 浏览

git - 将 Git 分支合并到 master 的最好(也是最安全)的方法是什么?

一个新的分支 frommaster被创建,我们称之为test

有几个开发人员要么提交master或创建其他分支,然后合并到master.

假设工作test需要几天时间,并且您希望不断test更新内部的提交master

我会git pull origin mastertest.

问题1:这是正确的方法吗?顺便说一句,其他开发人员可以轻松地处理与我工作过的文件相同的文件。


我的工作test已经完成,我准备将其合并回master. 以下是我能想到的两种方式:

A:

乙:

我没有使用--rebase,因为根据我的理解,rebase 会从中获取更改master并将我的更改堆叠在此之上,因此它可能会覆盖其他人所做的更改。

问题2:这两种方法哪一种是正确的?那里有什么区别?

所有这一切的目标是让我的test分支更新发生的事情,master然后我可以将它们合并回来,master希望尽可能保持时间线的线性。

0 投票
5 回答
12616 浏览

tfs - TFS 2010 跨团队项目分支 - 最佳实践

我在理解如何根据 TFS Ranger 团队提供的最佳实践配置 TFS 时遇到问题。问题是这样的:

我的公司有几种使用共享通用代码库的产品。

因此,我们有一个团队集合,例如,此示例的三个团队项目。($/* 是一个团队项目)

我们最初的发布分支有点痛苦。我们没有将 /Main 分支到 /Releases,或 /Main 分支到 /Development,而是单独分支每个项目。(不是团队项目......解决方案项目。)

这是由于无法嵌套分支根。(请参阅 TFS 错误:TF203028 和 TF203071

根据 TFS Ranger 指南和我们修订的版本、修补程序、开发分支方法,我们应该从 /Main 而不是 /Main/Source/Proj1、/Proj2、/Proj3 等分支。这只是一个相当大的烦恼。

理想情况下,我们希望:

解决方案: 1.我们可以将每个共享分支(即$/Core)转换回常规文件夹。这样 /Main 下的任何文件夹都不是分支根目录。然后我们可以执行从 $/Product1/Main/Source/Core/Source 到父 $/Core/Source 的毫无根据的合并。

有没有人有任何毫无根据的合并经验。我从微软那里读到的是,它们是不应该司空见惯的例外。MS 指出,如果您使用 TFS 正确设置项目,则永远不需要执行毫无根据的合并。

当跨团队项目分支时,这怎么可能?!?在任何软件开发公司中,在产品之间共享库应该是司空见惯的。

我也对其他解决方案持开放态度。

谢谢!

0 投票
3 回答
707 浏览

git - 我应该如何在 Git 中管理测试工具——它们应该放在单独的仓库中吗?

我现在在 Git 中管理一个大型(ish)项目 [90 个文件 650kb 代码]。我有一些独立的测试工具用于尝试/测试新的低级计算位,这些位后来合并到主代码及其分支中(目前通过复制粘贴!)。

管理测试工具的推荐最佳实践是什么?

它们应该在单独的存储库中,还是应该在主存储库中创建一个空分支来启动它,或者只是创建一个“测试工具”分支并覆盖旧代码?

希望的好处是主分支中的测试代码将与测试的代码明显“相同”。

我在 Windows (msysgit) 上,我是公司中使用 Git 的主要“探索者”。

0 投票
3 回答
573 浏览

visual-studio-2010 - TFS 2010 - 我们有代码分支。告诉开发人员编写哪个分支的最佳方法是什么?

根据您的经验,指定工作项应在何处编码的最佳方式是什么?你使用特定的领域吗?我们目前在 WIT 中使用自定义的“要修复的版本”字段,但它与 Dev 或 Main line 代码分支没有直接关系。我们最终会沟通哪些版本(v6.1、v6.2 等)与哪些分支相关,但仍然需要完成“映射”。这实际上仅适用于已发布版本中的“Hot Fix”,因为该分支的名称与“要修复的版本”相同。如何指定工作项,以便开发人员很容易知道在哪里编码并提供最少的维护?

更新:澄清一下……我们有 Dev、Main 和 Release(每个版本一个)分支。我们 90% 的开发工作都是在 Dev 中完成的。一旦迭代结束,我们将 Dev 反向集成到 Main,但是我们不会在那时发布它。在 Main 上进行了一段时间的测试,并且可以在 Main 上修复选择的错误。这一切都在进行,而下一次迭代(新故事)在 Dev 中继续进行。一旦在 Main 上看起来不错,我们将分支到一个新版本(新的 Release 分支),并且 Main 上的开发将结束,直到下一次迭代开始,我们再次从 Dev 反向集成到 Main。当然,一旦在 Main 上解决了问题,我们就会将 Main 集成到 Dev。在任何时候,我们都可能在 Dev、Main 或已发布版本上存在我们想要修复的错误。我们在 Main、Dev 和 Release 中进行了错误修复,这让一些开发人员感到困惑。我们告诉他们“版本”,但他们必须知道未来或当前版本链接回哪个分支。这就是我试图找到 Task 工作项的最佳实践的地方。

0 投票
3 回答
163 浏览

ruby-on-rails - 我可以使用 Git 维护一个应用程序的两个版本吗?

我正在用 Ruby on Rails 编写一个应用程序。此应用程序将交付给至少两种不同的客户类型。基础总是相同的,但有些观点不同。主要是这样。目前。

有没有什么办法,例如使用分支,使用相同的代码库并仅分离视图?我阅读了 Git 分支手册,但仍然不确定这是否是实现我需要的最佳方法。

另一个想法是分叉。但是,这很聪明吗?如果我更改了 fork A 的代码中的某些内容,是否容易将这些更改合并到 fork B 中?

0 投票
1 回答
161 浏览

mercurial - 将多个 Mercurial 分支合并在一起

我有一群开发人员使用分支进行错误修复。我的需求:自动化(或有没有办法)将所有这些分支合并到一个主分支“默认”的最佳方法是什么。

谢谢

0 投票
2 回答
141 浏览

git - GIT:分支期间会发生什么?

我的问题真的很无辜。我一直在阅读 git,并且我已经知道推拉和创建分支等基础知识。我的导师告诉我,使用 git 的正确方法是提取资源,创建一个新的本地分支,传输和编辑该本地分支,完成后,返回主分支并将其与本地分支合并。现在我的问题是,幕后究竟发生了什么?

  1. 我的意思是,当 git 创建本地分支时,它是否会创建您可以编辑的主分支的副本?如果有,这些副本在哪里?

  2. 如果我在本地分支上搞砸了,我该如何恢复更改(例如,我想回到我拉主时的方式)?回到master并删除本地分支只是一件简单的事情吗?

  3. 我想人们之所以称之为版本控制是因为分支,我认为它......代表版本。我对么?

  4. 为什么master叫分支?不应该是后备箱吗?好吧,这只是一个非常愚蠢的问题,忽略#4……哈哈哈!

对我天真幼稚的问题的回答将不胜感激。<3 <3 <3

0 投票
1 回答
359 浏览

git - 用于减轻来自主题分支的合并冲突的工作流策略

我正处于向我的上级出售 git 的风口浪尖。无论如何,他们正在听我们谈论它。有一件事我不确定,我想看看人们如何处理这个问题。基本上我的问题来自基本理解,即允许一对分支越远,它们就越难合并。

我正在考虑提出这个相当简单的工作流程:假设我有一个主(发布)分支、一个开发分支和主题分支。不同的开发人员正在开发他们单独的主题分支,只要他们觉得他们有工作代码,就会经常将这些主题分支拉到一个中央仓库。定期,当开发人员要求这样做时,维护人员(在我们的组织中,这个人的头衔是“技术主管”)从他们的功能分支合并到开发分支,将其放在临时服务器上并进行测试,一旦功能测试完成,它与 master 合并并推送到生产环境。

这是我的问题。开发人员是否应该定期合并他们的主题分支?这样做可以确保它们都相当干净地合并回 dev 中(或者至少在它们失控之前尽早发现冲突)。我知道我的经理唯一不喜欢的是,这是他们必须做的工作来安抚他们的工具,而不是为项目提供代码。想法?

0 投票
1 回答
70 浏览

svn - 分支和共享开发服务器?

因此,我将 Subversion 用作我维护的经典 ASP webapp 的 SCM。我们使用功能分支来处理具有依赖关系或长期开发的更改。

我们为 Dev/QA 使用共享 Web 服务器,这就是我的问题所在。中央开发服务器是主干的工作副本,然后当我需要从功能分支查看 Dev 上的更改时,我将它们合并到 Dev工作副本。到目前为止一切都很好,但我是否正在为将来的坏事做好准备?

例如,今天一位分析师告诉我,我可以“删除”我对某个功能所做的更改,然后合并到 Dev 站点进行演示——不是因为该功能被杀死,只是因为他不需要查看它了。我意识到我不能轻易做到这一点。我现在合并的更改只是在 Dev 工作副本上显示为本地修改,我不能轻易地将它们剥离(我必须手动恢复对受影响文件的更改,因为完全恢复可能/会杀死与其它功能)。

我写得越多,我就越觉得我已经回答了自己的问题。我是否需要更改我的分支策略——每个环境的分支?或者我是否需要为每个分支(dev.mysite.com:4801、dev.mysite.com:4802)有一个单独的“共享开发”站点?或者这就是你处理这个的方式?

0 投票
5 回答
13241 浏览

tfs - 按功能分支 - 优点/缺点?

我目前在一个项目中工作,分支和合并从一开始就没有很好地工作。为了改变这一点,我们一直在讨论很多不同的方法来做到这一点。我假设每个人都有自己的关于如何做这类事情的哲学,所以它似乎也在这里。

我们一直在谈论的一件事是按功能进行分支。对于这种特定方法的好坏,我们碰巧有非常不同的看法。

你以前有过这样做的经验吗?它运作良好吗?你有问题 - 什么样的问题?

我知道这个问题并没有真正的正确答案,但我发现听到世界各地其他开发人员的意见非常有趣,而 stackowerflow 似乎是一个很好的地方。