首页 > 解决方案 > 通过更新父分支从子分支 PR 中删除更改

问题描述

我有这样的情况,我从一个分支 A 创建了一个分支 B ,改变了一些东西并提出了一个 Pull Request 。后来才知道这些更改应该是 Branch A 而不是 Branch B 的一部分,并且不应该出现在 Branch B 的 PR 中,所以如果我更新父分支 Branch A(在那里添加这些更改),并将更改拉到分支 B ,所以现在分支 B 的 PR 是否会显示我之前添加的那些更改,或者那些将消失

标签: gitgit-branchpull-request

解决方案


您可以尝试从 B 快进到 A:

git checkout A
git merge --ff-only B

这会将提交应用到 A,因为它们在 B 中,或者如果存在任何冲突则失败。

之后,如果您想更改它,您可以简单地git reset --hard <commit>B 分支,或者再次从 A 重新创建 B 分支,所以它是 1:1。

或者,您可以使用cherry Pick,仅应用您想要的提交,然后重置 B 分支以提交您想要的。

关于拉取请求中的行为,B 分支仍将包含提交,但 git UI(例如 Gitea)可能不会显示它们,因为常见的提交将匹配。

或者,重新设置分支并删除常见的提交,例如:

git checkout B
git rebase A
git push --force  # to update the PR

推荐阅读