【问题标题】:Is it ok to keep the "old" version of my program in a branch?可以将我的程序的“旧”版本保留在分支中吗?
【发布时间】:2021-01-07 16:42:06
【问题描述】:

我在master 分支上维护了一个版本为“1.x”的程序。现在我计划对它进行一次大的重写,所以大部分文件将被删除/替换为新文件,但主要功能将保持不变。我想称之为版本“2.x”。

我不想为它创建一个新的存储库(例如,我会丢失我想在 2.x 中解决的 1.x 的所有未解决问题)。相反,我想:

  • 将 master 分支到一个临时的 2.x-dev 并开始在那里进行破坏性更改
  • “2.x”准备就绪后,从当前主服务器创建一个分支1.x
  • 2.x-dev 合并到master

最后,master会突然变成“2.x”版本的程序,而“1.x”会留在一个永远不会合并到master的分支上。。 p>

这是一个好习惯还是我应该以其他方式来做?

编辑:我不是 100% 确定我不会在合并后对 1.x 进行进一步更改。示例 1.x 可能会保留某种追溯兼容性。但它不会收到任何新功能。

【问题讨论】:

    标签: git branch versioning


    【解决方案1】:

    您是否计划在您的1.x 行中进一步发展?如果是这样,一个分支是完全正确的。 (由于 DAG 的性质——有向无环图——“叉子”和“分支”之间只有语义上的区别。简单地想象一个叉子作为不同服务器上的“远程分支”)。

    如果1.x只是历史记录,永远不会被修改,请使用标签(命令:git tag)。

    但你甚至可以将两者结合起来:

    • 创建标签1.0 来标记您最新1.x 版本的特定版本。
    • 如果您发现需要做进一步的工作,请从标签创建新分支:git checkout -b 1.x 1.0

    如果您发布新的 1.x 版本,只需再次标记分支的最新状态:git tag 1.1 1.x

    【讨论】:

    • 我已经为您编辑了问题的答案:我不是 100% 确定 :)
    • @TheUnexpected 我已经扩展了我的答案。我希望这会有所帮助。
    • 是的!我也可以做相反的事情吗?首先我分支 1.x,然后当我确定不再碰它时,标记为“1.x”,然后删除分支?
    • @TheUnexpected 当然,这基本上是我的最后一句话(git tag 1.1 1.x)。 Git 很灵活,不会对您的工作流程强加任何顺序。使用适合您的工作流程的任何东西。
    • 我觉得你可以只删除前两段。无需猜测,只需始终标记每个版本。然后,当您需要对某个版本进行进一步开发时,请在开发开始时创建分支。
    猜你喜欢
    • 2018-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多