我正在开发名为x
的git分支。前段时间我不得不从分支y
合并到该分支更改。现在,由于我已完成工作,我想从分支x
发布我的更改,因此请进行合并请求。但是分支y
中的功能尚未准备好生产,但它们将包含在我的分支中(但我不再需要它们) - 是否有一个简单的解决方案# 34;取消合并"我将分支y
合并到我的分支时所做的更改? (所以他们不会被包括在MR中)
答案 0 :(得分:1)
您可以删除从分支y
合并的提交。例如,使用git rebase
:
pick bba85d4 aaaa
d 7355f82 bbbb
d 03cac01 cccc
pick 6f43992 dddd
pick 37eabec eeee
" d"表示您要删除这两个提交。现在保存文件,然后推送更改。
如果您不想重写历史记录,可以按照其他答案中的建议创建新分支和cherry-pick
要包含的提交。
答案 1 :(得分:1)
您可以创建一个仅包含所需更改的新分支,然后从中创建一个新的拉取请求:
我们假设您希望从y
创建一个新分支,该分支将恢复为提交1234
,然后将其合并到x
:
git checkout -b new_branch upstream/master
git cherry-pick 1234
git push -u origin new_branch
然后从new_branch
到x
等
(我可能会误解x - > y或y - > x的顺序,但它并不重要。想法是创建一个新的分支,然后挑选你想要的变化)