首页 > 解决方案 > git:将本地分支合并到不同的上游/主分支

问题描述

所以我有一个本地克隆的存储库,我在新分支中对其进行了一些更改,同时从上游维护主分支。我对 master 分支的早期提交的修改现在有所不同,因为很多 master 分支已经发生了实质性的变化。特别是一个文件,我对其进行了多次更改,已在上游拆分为三个文件,我想将我的编辑合并到其中一个文件中。但是由于新文件的名称与之前的名称完全不同,我担心通用合并会引起很多复杂性(请参阅下文,了解我的意思);出于同样的原因,生成差异/补丁也不起作用。我怎样才能让我的分支与上游融合?

作为参考,我在https://github.com/brihadeesh/elegant-emacs/tree/dev上的分支 你可能会在 master 分支中注意到,elegance.el(虽然它仍然存在)被分成两个主题文件,现在是什么elegant.el为了使我的分支与 master 保持一致(除了我添加的一些其他文件),我必须将我的更改从dev/elegance.elinto合并master/elegant.el,同时适应上游的更改。

标签: gitgithub

解决方案


我做了一些思考,可能已经找到了一种方法来做到这一点。

  1. 我首先通过从我的分支运行将新文件添加elegant.el到我的分支:
git checkout master elegant.el
  1. elegance.el用我的反对版本生成一个差异elegant.el(因为它们在技术上具有相同的结构),然后手动修补每个差异块,以验证没有一个块添加以前删除的代码位。

  2. 检查并合并到 master 以供我使用,也许设置一个不同的分支来获取/合并上游/master 提交。

有人可以在我尝试时验证这一点吗?


推荐阅读