目前,我们正计划将软件版本从5.x.x转换为6.x.x。在我们的例子中,这样的主要版本包含了大量的重构工作和软件体系结构的改变。我没有为version 6 (git)创建一个新分支,而是为此创建了一个自定义存储库。一般来说,开发新版本的基础是旧版本,因此它将是一个副本。
我的问题是,开发版本5不会停止,因为bug修复和一些小的更改将被完成。但是现在我有了两个版本,在两个独立的存储库中。在没有复制代码或两次工作的情况下,对这两种情况进行更改的最佳方法是什么?有没有什么有效的方法?
也许其他人以前也有同样的问题。
发布于 2015-11-29 13:50:09
处理此场景的一种常见方法是使用主干/分支概念。您所做的是拥有一个存储库,并出于维护的原因将5.x.x版本进行分支。然后将所有新的6.x.x更改放到后备箱中。这样,您就可以维护代码的所有版本历史。这还允许您签出旧版本,并在不影响主干的情况下进行目标修复。
如下所示:
|------branch (5.x.x)
|
----------------------------------------------------------------------Trunk (6.x.x)然后,如果您需要一个7.x.x版本,您可以再次这样做:
|------branch (5.x.x)
| |---branch (6.x.x)
| |
---------------------------------------------------------Trunk (7.x.x)发布于 2015-11-29 13:52:28
有几种解决方案与git一起使用。在这种情况下,我获得了使用git-worktree的良好经验。摘录自手册页:
Manage multiple working trees attached to the same repository.
A git repository can support multiple working trees, allowing you
to check out more than one branch at a time. With git worktree add
a new working tree is associated with the repository. This new working
tree is called a "linked working tree" as opposed to the "main working
tree" prepared by "git init" or "git clone". A repository has one main
working tree (if it’s not a bare repository) and zero or more linked
working trees.这里有一个完整的副本:https://git-scm.com/docs/git-worktree
https://softwareengineering.stackexchange.com/questions/303835
复制相似问题