我有一个git repo,它包含所有1.x版本的代码。现在我开始研究2.x“分支”。因为我开始再次从头开始编码(1.x和2.x之间没有连接)我想知道2.x是否真的是一个真正的分支,或者我是否应该更好地启动一个全新的存储库。
想知道每种解决方案的优缺点。我可以想象从1.x分支切换到2.x分支需要相当长的时间。
答案 0 :(得分:10)
如果您决定在代码中保留两个版本(这是有道理的),您可以创建第二个根分支:
git checkout --orphan branchForV2
(详见“How to merge codeline with git”和“Deploying a Re-Written Github/Heroku App”)
答案 1 :(得分:3)
我通常更喜欢将同一项目的版本保存在同一个存储库中。
例如,我有几年前在SVN下用经典ASP创建的项目,然后我将项目迁移到PHP + Git,最后迁移到Ruby + Git。实际上,3个版本是完全重写的,因为我改变了技术,但是所有内容都在同一个存储库中。
如果需要,我甚至可以决定签出一个非常旧的版本。
使用单独的存储库有减少存储库大小的优势,但是Git有一个非常有效的压缩算法(例如与SVN相比),我看到在Git中压缩的不到100Mb的800Mb SVN存储库。
老实说,我认为这是一个品味问题。
使用单独的存储库可减少存储库大小。
使用相同的存储库具有将项目的整个历史记录保存在同一位置的优点。您甚至可以标记版本以便在它们之间轻松切换。最后但同样重要的是,如果您在版本之间重用资产,Git可以优化它们并将它们存储一次。