为新的主要更新创建单独的存储库?

时间:2018-06-21 13:00:43

标签: git github version-control repository

我有一个开发框架,我将很快进行重大更新。 (至2.0.0)

我更改了框架的整体设计,因此它根本与以前的版本不兼容。

就我而言,为我的新主要更新创建一个单独的Git存储库是一个好主意吗?还有这样的情况吗?

我将不胜感激。

2 个答案:

答案 0 :(得分:2)

我将维护相同的存储库和相同的分支以保留所有历史记录。您可以使用标签来管理此更改,我的意思是,您将可以使用此标签执行很多操作。例如结帐,共享等。

我认为这篇文章可能对您很方便:

https://git-scm.com/book/en/v2/Git-Basics-Tagging

答案 1 :(得分:1)

一些真实的例子

Yii framework前一段时间做了类似的事情。 Yii 2.0是完全重写的-几乎所有类名都已更改(由于引入了名称空间),并且您实际上可以同时使用Yii 1.1和Yii 2.0,因为它们充当两个单独的库。因此Yii团队选择创建单独的存储库(yii2)和单独的包名称(yiisoft/yii2)。这自然地产生了一些约定-通常Yii 2扩展名以yii2-为前缀,以区别于完全不同的Yii 1.x(通常以yii-为前缀)。到目前为止,一切都很好-有一致的命名约定,可以避免框架版本之间的混淆。

但是现在Yii想要使用semver。这自然需要发布下一个主要版本-Yii 3.0。 3.0将不会完全重写-只会更改框架的某些部分。创建新的yii3存储库和新程序包是没有意义的。因此,或者我们在yii2存储库中拥有Yii 3,或者我们需要重命名存储库和程序包名称(成千上万的应用程序和扩展程序将其用作依赖项)。两种选择都非常糟糕。


因此,除非您要将其视为全新的框架(使用不同的名称,而不仅仅是myframework2),否则我不建议创建新的存储库。用2作为后缀来创建新的存储库和软件包可能很诱人,因为它可以解决一些问题,但从长远来看,弊大于利。