Git将更新的master合并到一个分支中

时间:2013-02-10 17:42:28

标签: c++ git testing merge

在某些时候,我决定开始测试我的C ++类。所以我去了我的主分支并从它分支到一个叫做“测试”的新分支。我创建了一个带有一些基本测试的/ tests文件夹,并在我的Automake.am文件中的check_PROGRAMS下添加了测试程序名称(我使用GNU Build System,a.k.a Autotools作为我的构建系统)。

由于我的项目仍处于初期阶段,因此没有稳定的版本。大多数接口都是构建的,所以现在为所有接口编写完整测试还为时过早,因为接口会发生变化,无论如何我都要重写很多测试。但我有一个分支,我已经开发了一些或多或少的独立算法,我想测试。我的GUI不完整,但我确实想在编写使用它们的GUI之前测试算法。

所以我看到的选项是: 1.将“testing”合并到master,然后将“master”合并到算法分支 2.将“测试”合并到算法分支 3.只需在算法分支中创建一个/ tests文件夹,而不进行任何合并

有些分支有一些文件被重命名或删除,因为它是如此早期的阶段,所以如果我将测试/ master合并到算法分支中,我将得到一个充满无关测试的测试文件夹。但算法接口是项目的第一部分,可以完全准备好测试并变得稳定并且可以使用,所以如果我不合并,我会得到一个“干净”的测试文件夹,其中现在唯一的测试是一个测试算法,这是第一个带有就绪接口的部分,所以我不希望有变化,只是修复错误,我检测到哪个测试。

这里最好的合并/不合并策略是什么?

3 个答案:

答案 0 :(得分:1)

为什么要在不同的分支中进行测试? git中的分支通常用于在项目的并行版本之间切换,例如“稳定”和“发展”。在“带测试的版本”和“没有测试的版本”之间切换的目的是什么?

最有意义的是在所有分支中进行测试。然后你的主分支中的测试不需要工作,因为你的代码没有完成,你可以让你的算法分支中的测试在主分支之前工作。当您最终使主测试工作时,您可以合并算法分支。

答案 1 :(得分:1)

我可以想到两个选择:

  1. 如果您已经对"测试"进行了一些配置分支让测试工作,然后选择选项2:

    Merge "testing" to the "algorithm" branch
    

    这样,你就不用再花时间再配置一切了。

    对于你称之为无关紧要的测试,如果它们真的无关紧要,你可以在执行合并之前删除它们。但是检查测试配置是否有效的测试并不相关。我不知道这是不是你的情况。

  2. 第二个选项是从"算法"创建一个新分支,让我们称之为" algorithm2 "。

    Merge "testing" into "algorithm2"
    

    如果一切按预期工作,那么您可以删除"算法"科。这将是一种向算法分支引入新更改的安全方法。

答案 2 :(得分:0)

最好的总体策略是制作稳定或稳定版本的主分支。 1.0,2.0 ..etc 然后,为每个测试或功能创建一个称为功能分支的东西。 删除文件并不是什么大问题,因为git rm文件将在合并中完成。 始终通过拉取请求与主分支(2.0)合并

玩得开心。

相关问题