I have master and 新项目分支机构。现在我想创建一个全新的存储库及其基于新项目分支的主存储库。
背景:我有一个存储库,其中包含三个独立的应用程序。事情并不是这样开始的。仓库中最初只有一个应用程序。然而,随着时间的推移,业务需求发生了变化。一个应用程序变成了两个(旧版本和重写版本)。添加了 Web 服务。单独的分支用于容纳这三个项目。但是,他们不共享任何代码。因此,将它们分成自己的存储库会更简单。
我从@user292677的想法开始,并改进它来解决我的问题:
- 创建new-repo在github上。
- cd 到您要从中提取的旧存储库的本地副本,该副本设置为跟踪新项目将成为的分支new-repo的主人。
-
$ git push https://github.com/accountname/new-repo.git https://github.com/accountname/new-repo.git +new-project:master
新的 Github 存储库已完成。结果是;
- 一个名为的新 Github 存储库new-repo,
- whose
master
对应于旧的回购协议新项目, with
- 所有历史都被保留。
事实上,我发现通过使用这种方法,我可以使用精心挑选的分支来创建新的存储库,并根据我的需要重命名:
$ git push [email protected] /cdn-cgi/l/email-protection:accountname/new_repo +new-project:master +site3a:rails3
结果是,先前存在的site3a分支现在也移动到新的存储库,并将显示为rails3。这非常有效:网络图显示了新的master and rails3具有完整的历史和彼此之间正确的关系。
2013-12-07 更新:将此与另一个项目一起使用,并验证此配方仍然有效。
2018-01-11 更新:更新了步骤 3,以使用 https 协议的 GitHub 推荐。食谱仍然有效。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)