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

Git merging updated master into a branch

本文关键字:一个 分支 更新 合并 master Git      更新时间:2023-10-16

在某个时候,我决定开始对我的C++类进行测试。所以我去了我的主分支,并从它分支到一个名为"测试"的新分支。我创建了一个/tests文件夹,其中包含一些基本测试,并在我的Automake.am文件中的check_PROGRAMS下添加了测试程序名称(我使用GNU构建系统,也称为Autotools,作为我的构建系统)。

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

因此,我看到的选项是:1.将"测试"合并到master,然后将"master"合并到算法分支2.将"测试"合并到算法分支3.只需在算法分支中创建/tests文件夹,目前没有任何合并

有些分支已经重命名或删除了一些文件,因为这还处于早期阶段,所以如果我将测试/主机合并到算法分支中,我会得到一个测试文件夹,里面装满了不相关的测试。但算法接口是项目的第一部分,要完全准备好进行测试,并变得稳定和可供使用,所以如果我不合并,我会得到一个"干净"的测试文件夹,其中目前唯一的测试是测试算法的测试,这是第一个准备好接口的部分,所以我不希望在那里发生变化,只是修复我检测到的测试错误。

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

我能想到两个选项:

  1. 如果您已经在"测试"分支上进行了一些配置,以便测试工作,那么选择选项2:

    Merge "testing" to the "algorithm" branch
    

    这样,您就不会浪费时间再次配置所有内容。

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

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

    Merge "testing" into "algorithm2"
    

    如果一切都如您所期望的那样工作,那么您可以删除"算法"分支。这将是一种安全的方式,可以为您的算法分支引入新的更改。

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

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

最好的通用策略是生成主分支,它保存稳定或即将稳定的版本。1.0、2.0等然后为每个测试或特性创建一个称为特性分支的东西。删除文件并不是什么大不了的事,因为git-rm文件将在合并中完成删除。始终通过提取请求与主分支(2.0)合并

玩得开心。