我有一个包含开发分支和生产分支的项目。最近,我一直在开发中开发一组新的功能,所以我已经有两周没有合并到生产中了。然而,与此同时,在生产中也有一些错误需要修复。
在大多数情况下,我能够在开发中进行修复,并将其挑选到生产中。然而,有时我需要手动修复生产,因为这两个分支的修复有很大不同。重点是,这两个分支自分裂以来已经有了相当大的分歧。
现在我只想把所有的开发投入生产。我不在乎在拆分后在生产中保留任何提交,我只希望生产看起来和dev完全一样。[EDIT:我希望生产在拆分后看起来和dev完全一样,但不想在拆分前重写历史]然而,当我尝试合并时,我会遇到几十个冲突,我不想手动修复。
在git中强制合并的最佳方法是什么?我可以将生产更改恢复到拆分,然后快进到开发分支吗?
您可以将开发分支推送到主回购生产分支:
git push --force upstream-remote dev:production
如果使用默认克隆,则upstream-remote
可能只是origin
。
针对修改后的问题更新:
你可能不想使用git意义上的revert
,但是的,这或多或少是你想要做的
git checkout -b merge <split hash>
git merge dev
git push --force origin merge:production
<拆分哈希>是您要保留的最后一个生产承诺。
这将把您的新分支合并到现有的baseBranch 中
git checkout <baseBranch> // checkout baseBranch
git merge -s ours <newBranch> // this will simply merge newBranch in baseBranch
git rm -rf .
git checkout newBranch -- .