项目大修的最佳GIT战略

时间:2018-03-30 20:39:53

标签: git

我有一个现有的GIT项目,我将进行大幅度的改革。我认为最简单的策略是从空白的平板开始,然后从现有项目中复制/粘贴我需要的部分。

知道这一点,我的计划是在我现有的仓库中创建一个新的空(孤儿)分支,然后最终将其推广到“主”分支。

但是考虑到这一点,我不希望它尝试将新分支与任何现有分支合并,因为事情会变得混乱。

在这种情况下创建一个全新的仓库会更好吗?

3 个答案:

答案 0 :(得分:2)

我要说你应该选择孤儿分支,因为:

  1. 大多数git项目不仅仅是代码,还有关于wiki的文档,问题跟踪器上的问题以及与github / bitbucket / gitlab上的存储库相关联的其他元数据等。新的repo意味着你也失去了那些前线的连续性。

  2. 虽然新的repo提供了一个干净的平板允许在雷达类型的开发下,如果您没有旧的代码库,则无法参考任何开发历史记录 - 您可能会在git commit中丢失信息有关提交可以封装的编码选择的消息和观点。

  3. git中的分支名称只是提交ID上的标签,并且很容易移动分支。例如,将来,您可以创建主分支的归档分支,并将孤立分支作为主分支推送,从而无需合并分支:

    git push origin master:master_archive
    git push origin orphaned_branch:master -f
    
  4. 所以,实质上,如果下面的组合适用于您,请使用新的回购:

    一个。你的代码库很小(没有太多的上下文丢失)

    湾很少有开发人员参与该项目(不需要太多的知识转移)

    ℃。你想在雷达下飞行

    d。你计划在将来丢弃所有旧代码,门票和参考资料。

    即您的wiki和错误跟踪未与存储库耦合

答案 1 :(得分:1)

空分支实际上没有代码......它只是没有修改。我想说最简单的解决方案是一个新的存储库。但是问问自己git存储库的目标是什么 - 是A)只是冗余还是B)编辑历史很重要?

如果答案是A,那么肯定使用新的存储库。如果它是B,那么你需要一个新的分支,你将不得不处理合并。合并并不困难 - 您只需选择use mine进行合并冲突。

答案 2 :(得分:1)

我只是分叉原始的回购并从那里开始。 即使您替换了每个文件,您仍然可以使用旧版本中的旧引用。 您可以使用标签或分支来改进一些概述。

编辑:对forked repo的引用也始终存在(在github上作为链接),将来访问它也可能有用。