当我准备好合并为主人时,我通常会拉我的同事的功能分支,但首先我在最新的主人之上重新定义它并将正在进行的工作提交压缩成一个提交(我的同事是设计师和使用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
有更好的方法吗?
答案 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