首页 > 解决方案 > 拉取请求包含我在其他分支上的提交?

问题描述

我知道这个不断变化的分支基础技巧并且它不起作用,来自这个问题:GitHub拉取请求显示已经在目标分支中的提交

就我而言,在切换到分支之前,我正在从我工作的其他分支获取我的提交。我该如何解决?

标签: gitgithubgit-commitgit-pull

解决方案


一个相对简单的解决方案是从master(或您要合并的分支)创建一个完整的新分支,然后从旧分支中逐一挑选您想要包含在 PR 中的提交。然后您需要使用原始分支名称强制推送到 github。

git checkout -b new_attempt origin/master
git cherry-pick <commit1>
git cherry-pick <commit2>
...
git push --force origin new_attempt:mybranch

其中mybranch是您用于此 PR 的分支的名称。

如果提交太多,您可以尝试使用 rebase--onto选项。

git rebase --onto origin/master <base_commit> mybranch
git push --force origin mybranch

其中<base_commit>是您要从 PR 中排除的最后一次提交。变基可能有点棘手,因此请备份并阅读git-rebase 文档


推荐阅读