如何在 Git 中仅将更改/差异从一个分支应用到另一个分支



我创建了一个"branch_b",最终应用了两个提交。当我试图与主人合并时,我意识到我很久没有拉过我的主人,所以有太多的冲突(其中一些与我的提交无关(以至于不值得解决它们(太多的努力(。

我想做的是从更新的主控形状创建一个新的"branch_X",并应用我在"branch_b"上所做的更改。

有可能实现吗?

我试过:

挑选
  1. 提交,但是当我尝试将它们应用于branch_X时,我在尝试将"branch_b"合并到 master 时会遇到相同的冲突。如前所述,如果我开始解决所有冲突,可以证明要到2050年。

  2. 创建一个补丁(使用 diff 命令(并尝试在"branxh_X"上应用。那个也失败了,来自 git 的一条简单消息"错误:补丁失败:">

UPDATE1

到目前为止,任何尝试都会导致冲突,这是我试图避免的。

假设我创建了一个新分支,并且从头开始进行与"手动"branch_b相同的更改。而不是手动执行此操作,是否可以通过 git 执行此操作?没有变基或挑选(无论我尝试什么,这些都会产生冲突(?

这可以像这样完成:

git checkout --detach branch_b
git rebase --onto branch_X branch_X HEAD

这应该在branch_X的基础上应用两个修订......但这会带来同样多(如果不是更多(的冲突。并不是说变基可以神奇地摆脱冲突。一个一般规则会说(你可以引用我的话(:You could skip conflicts on rebase by merging.... it doesn't work the other way around.

如果您喜欢变基后的结果

git branch -f branch_b # ser branch_b on it's new position

然后根据需要推送