在我们的工作流程中,我们有一个开发分支,该分支有时会充满各种功能。有时,这些功能永远不会合并到母版,因为它们将无法使用或该功能已被删除。
因此,开发分支由不必要的提交组成。
我们每半年尝试尝试重新创建开发分支。我们将其删除,然后从实际的master分支中签出。 每个开发人员都必须意识到这一事件,因为他们必须使用新创建的来源/开发来切换其本地开发分支。
通常这是行不通的。由于某些开发人员生病或度假,他们返回时会跳过描述此事件的电子邮件。他们最终陷入混乱。
我们如何清理 development 分支,使其仅包含与 master 分支相同的提交。实际上,它应该包含与我们从master分支中重新签出时相同的提交历史记录。
答案 0 :(得分:1)
您可以重写development
分支的历史记录,以任意指向master
所做的同一提交,从那时起,它们将具有完全相同的历史记录。
git branch -f development master
但是,由于development
是共享的,这意味着每个回购用户将必须更新其现在已过时的本地版本development
,这意味着解决冲突……很难说这是'比您描述的工作流程更方便。
答案 1 :(得分:0)
实际上,它应该包含与我们从master分支中刚签出时相同的提交历史记录。
如果您确实希望development
分支与master
分支相同,则可以将其重置:
git checkout development
git reset --hard master
但这并不是真正理想的操作,因为它重写了development
分支的历史记录。假设您说过,有些开发人员可能正在休假,当他们回来拉development
时会感到惊讶。实际上,除了每个执行硬重置的开发人员外,每一个开发人员都会陷入困境。
因此,更好的计划是创建一个 new 开发分支(使用不同的名称),其起始点为master
分支。然后,每个开发人员都可以从一开始就简单地重新签出该分支,而不会出现任何问题。