我有一个巨大的项目。我被指派重做文件结构,这样它就不会让我们的开发人员发疯。一切都在 GitHub 中,所以我只是 fork 了该项目并进行了更改。
我已经完成了,现在想将我的更改 pull 回来。但是,在我进行重组时,我们的其他一些开发人员已提交到主存储库。我无法 merge ,因为我移动的文件已更改(因此 Git 认为我删除了它们)。它们是最新的,只是在新位置。
如何成功提取重组后的代码?我唯一的想法是从本地存储库中删除所有主代码,然后将新代码复制到其中,并从那里进行提交。然而,我认为这是不好的做法。
更新:According to this question, git mv 会有帮助。但是,所有目录更改均已完成。
最佳答案
几天前我们也遇到了同样的问题。
这是我们所做的:
将主分支 merge 到新功能分支
git checkout new-branch git merge master
将新功能分支 merge 到主分支
git checkout master git merge -s theirs
第一次 merge 是在开发新功能分支时保留主分支中应用的所有修补程序。使用策略选项 (-s) 的第二次 merge 是强制保留新功能分支中的更改(我们删除并更改了大量代码)。
您可以在本主题 When would you use the different git merge strategies? 中找到有关 merge 的更多信息
关于git - merge 存储库同时覆盖更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12466802/