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

Git 为新的主要更新创建单独的存储库?,git,github,version-control,repository,Git,Github,Version Control,Repository,我有一个开发框架,我将很快做一个重大更新。(至2.0.0) 我改变了我的框架的整个设计,因此它将与以前的版本完全不兼容 在我的例子中,为我的新主要更新创建一个单独的Git存储库是一个好主意吗?有这样的情况吗 如果您有任何意见,我将不胜感激。我将维护相同的存储库和分支,以保留所有历史记录。您可以使用标签来管理此更改,我的意思是,您将能够使用此标签执行许多操作。例如结帐、共享等 我认为这篇文章对您来说非常方便: 一些真实的例子 不久前做过类似的事情。Yii 2.0是完全重写的-几乎所有的类名都发生了

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

我改变了我的框架的整个设计,因此它将与以前的版本完全不兼容

在我的例子中,为我的新主要更新创建一个单独的Git存储库是一个好主意吗?有这样的情况吗


如果您有任何意见,我将不胜感激。

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

我认为这篇文章对您来说非常方便:

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

但现在我想用。这自然需要发布下一个主要版本——YII3.0。3.0将不会完全重写-只有部分框架会更改。创建新的
yii3
存储库和新包是没有意义的。因此,要么我们在
yii2
repository中有yii3,要么我们需要重命名repository和package name(它被数千个应用程序和扩展用作依赖项)。这两种选择都很糟糕



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

在您的情况下,您应该创建一个新分支,而不是一个新的回购。@RajeshV如果是这样,新版本会成为主分支吗?Zack,您可以随时更改默认分支,默认情况下,它将是master。git中的提交或分支之间没有兼容性问题。你可以很好地让你的回购协议中的每一个承诺都不向后兼容,并且很好。