我们已经在git中与dev分支合作了很长时间。我们所有的代码都是dev分支的最新代码。然而,主分支非常过时。我们希望将dev分支合并回主分支以使其更新。
然而,当我们尝试将dev合并回master时,我们会遇到超过24,000个冲突。我知道疯了!主分支中的所有代码都已过期。理想情况下,我们希望将所有内容都放在dev中并覆盖master中的内容。
有没有办法将dev合并到master中并让它从dev获取所有最新代码并覆盖所有冲突以确保采用dev文件?我们不需要保留主分支中的任何代码,因为它已经过时了。当我们想要的只是采用开发分支代码时,手动完成所有冲突将是非常困难的。
我们需要将其推向所有队友的原点。
答案 0 :(得分:5)
@ SnowMax的答案已经很好了:
git checkout master
git merge -X theirs dev
但是,根据项目的状态,可能仍然存在问题。也就是说,如果对主人进行了一些更改,不会导致冲突,但是你可以扔掉(正如你所说的那样“主分支中的所有代码都已过时。 “)
为了把它们扔掉,你可以(在上面的步骤之后)
git checkout dev .
git commit -m "undid useless changes to master"
这将确保您的整个git仓库已签出为dev
如果你不关心dev分支的提交历史(你可能会关心它),那么最后两行就足够了。
请注意,如果您仍然在前两行中出现合并冲突,这也有效...
答案 1 :(得分:2)
只需使用
git checkout master
git merge -X theirs dev
答案 2 :(得分:-1)
您可以简单地将开发分支强制推送到远程生产中。
git push --force origin development:production