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