代码之家  ›  专栏  ›  技术社区  ›  xetra11

如何用主分支历史覆盖开发分支

  •  0
  • xetra11  · 技术社区  · 6 年前

    问题

    在我们的工作流程中,我们有一个开发分支,它不时地变得充满了特性。有时,这些功能将永远不会合并到主控形状,因为它们无法工作或功能已被删除。

    因此,开发分支包含不必要的提交。

    我们每半年试一次 重新创建 发展部门。我们移除它并从实际的主分支中检查它。 每个开发人员都需要意识到这一事件,因为他们必须将本地开发分支切换到新创建的源/开发。

    通常情况下,这是行不通的。因为一些开发人员生病或休假,当他们返回时,他们跳过描述这个事件的电子邮件。他们最终陷入混乱。

    问题

    我们怎样才能清洗 发展 分支只具有等于 主人 分支。实际上,它应该包含与我们从主分支新签出它时相同的提交历史记录。

    2 回复  |  直到 6 年前
        1
  •  1
  •   Romain Valeri    6 年前

    你可以重写 development 分支任意指向同一个提交 master 是的,从那一点上,他们将有完全相同的历史。

    git branch -f development master
    

    然而,自从 发展 是共享的,这意味着每个回购用户都必须更新其现已过时的本地版本 发展 这意味着冲突解决…很难说这会比你描述的工作流程更方便。

        2
  •  0
  •   Tim Biegeleisen    6 年前

    实际上,它应该包含与我们从主分支新签出它时相同的提交历史记录。

    如果你真的想要 development 分支与 master 分支,然后您可以重置它:

    git checkout development
    git reset --hard master
    

    但这并不是一件理想的事情,因为它改写了 发展 分支。你说,有些开发人员可能在度假,当他们回来时会得到一个惊喜。 发展 . 事实上, 每一个 除了执行硬重置的开发人员外,开发人员将被托管。

    所以,一个更好的计划是创建一个 新的 开发分支(名称不同),其起点是 主人 分支。然后,每个开发人员可以从一开始就直接签出这个分支,没有任何问题。