从另一个分支转换和合并所有更改的最佳方法

时间:2016-02-05 03:29:03

标签: git version-control merge

当我准备好合并为主人时,我通常会拉我的同事的功能分支,但首先我在最新的主人之上重新定义它并将正在进行的工作提交压缩成一个提交(我的同事是设计师和使用GitHub GUI。

当我的同事在他的功能分支中包含主人的合并提交时,我遇到了一个问题。问题是,他在合并提交中包含了在rebase期间被删除的功能更改。据我所知,git rebase master通常会忽略合并提交,而git rebase --preserve-merges master并未进行任何全部变更。

我遇到了生成补丁的各种解决方案,但大多数都省略了合并提交或省略了一些所需的二进制文件。我终于想出了这个解决方案:

git checkout master
git diff --binary master...feature-branch > my.patch
git apply -3 my.patch
git commit
rm my.patch

有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

这会生成一个名为my.patch的文件,使用3路合并应用它,提交更改,然后删除补丁文件。

git checkout master
git diff --binary master...feature-branch > my.patch
git apply -3 my.patch
git commit
rm my.patch