繁体   English   中英

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

[英]Git merging updated master into a branch

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

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

所以我看到的选项是:1。将“testing”合并到master,然后将“master”合并到算法分支2.将“testing”合并到算法分支3.只需在算法分支中创建/ tests文件夹,无需任何合并目前

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

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

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

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

我可以想到两个选择:

  1. 如果您已经在“测试”分支上进行了一些配置以使测试起作用,那么请转到选项2:

     Merge "testing" to the "algorithm" branch 

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

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

  2. 第二种选择是从“算法”创建一个新的分支,我们称之为“ algorithm2 ”。

     Merge "testing" into "algorithm2" 

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

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

玩得开心。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM