如何解决可以将我的程序的“旧”版本保留在分支中吗?
我在 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 的分支上。 >
这是一个好的做法还是我应该换一种方式?
编辑:我不是 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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。