可以将我的程序的 "old" 版本保留在分支中吗?

Is it ok to keep the "old" version of my program in a branch?

我在 master 分支上维护一个版本为“1.x”的程序。现在我正计划对其进行重大重写,因此大部分文件将 deleted/replaced 添加新文件,但主要功能将保持不变。我想称它为版本“2.x”。

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

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

这是一个好的做法还是我应该换一种方式?

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

您是否计划进一步开发您的 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