我有一个现有的GIT项目,我将进行大幅度的改革。我认为最简单的策略是从空白的平板开始,然后从现有项目中复制/粘贴我需要的部分。
知道这一点,我的计划是在我现有的仓库中创建一个新的空(孤儿)分支,然后最终将其推广到“主”分支。
但是考虑到这一点,我不希望它尝试将新分支与任何现有分支合并,因为事情会变得混乱。
在这种情况下创建一个全新的仓库会更好吗?
答案 0 :(得分:2)
我要说你应该选择孤儿分支,因为:
大多数git项目不仅仅是代码,还有关于wiki的文档,问题跟踪器上的问题以及与github / bitbucket / gitlab上的存储库相关联的其他元数据等。新的repo意味着你也失去了那些前线的连续性。
虽然新的repo提供了一个干净的平板允许在雷达类型的开发下,如果您没有旧的代码库,则无法参考任何开发历史记录 - 您可能会在git commit中丢失信息有关提交可以封装的编码选择的消息和观点。
git中的分支名称只是提交ID上的标签,并且很容易移动分支。例如,将来,您可以创建主分支的归档分支,并将孤立分支作为主分支推送,从而无需合并分支:
git push origin master:master_archive
git push origin orphaned_branch:master -f
所以,实质上,如果下面的组合适用于您,请使用新的回购:
一个。你的代码库很小(没有太多的上下文丢失)
湾很少有开发人员参与该项目(不需要太多的知识转移)
℃。你想在雷达下飞行
d。你计划在将来丢弃所有旧代码,门票和参考资料。
即您的wiki和错误跟踪未与存储库耦合
答案 1 :(得分:1)
空分支实际上没有代码......它只是没有修改。我想说最简单的解决方案是一个新的存储库。但是问问自己git存储库的目标是什么 - 是A)只是冗余还是B)编辑历史很重要?
如果答案是A,那么肯定使用新的存储库。如果它是B,那么你需要一个新的分支,你将不得不处理合并。合并并不困难 - 您只需选择use mine
进行合并冲突。
答案 2 :(得分:1)
我只是分叉原始的回购并从那里开始。 即使您替换了每个文件,您仍然可以使用旧版本中的旧引用。 您可以使用标签或分支来改进一些概述。
编辑:对forked repo的引用也始终存在(在github上作为链接),将来访问它也可能有用。