git - merge 存储库同时覆盖更改

标签 git github git-merge

我有一个巨大的项目。我被指派重做文件结构,这样它就不会让我们的开发人员发疯。一切都在 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/

相关文章:

java - 在 Eclipse 中使用 Git 会导致很多错误

git - 使用子存储库管理 git

java - Selenium 与 Jenkins 集成

git - 存储库中的全局 .gitignore 与 .gitignore

java - IntelliJ 使用另一个帐户致力于我的 GitHub 项目

git - bitbucket无法 merge ,该字段为必填项

javascript - react native git 升级错误 : fatal: No remote repository specified

git - 将master分支中未提交的更改移至dev分支并还原master

git - 如何找到大文件中 merge 冲突的位置?

git - 如何解决 git 错误 : "Updates were rejected because the tip of your current branch is behind"