首页 > 解决方案 > 如何从已创建但未完成的拉取请求中排除文件?

问题描述

下午好!一个人创建了一个拉取请求,但在创建它之前,他合并了另一个分支,其他文件的更改进入了创建拉取请求的分支。如何从创建的拉取请求中删除这些文件,以便在执行后不会应用对它们的更改?

标签: gitazure-devops

解决方案


您可以恢复一个人从另一个分支合并的更改。

假设您创建了一个从A 分支B 分支的 PR ,但是 A 人将一些不需要的更改从C 分支合并到A。现在您不希望将 C 分支的更改合并到 B 分支。您可以运行命令将 A 分支恢复到合并 C 分支之前的状态。请参阅下面的示例 git 命令:git revert

git checkout A

#git log --oneline #find the commit hash of the merge with git log
#git revert -m 1 [commit-hash] 

git revert -m 1 HEAD   #revert A branch to the before-merge state
git push #push A back to remote server

然后 PR 的 A 分支将更新,C 分支不需要的更改将被删除。有关详细信息,请参阅撤消合并

Git revert命令将保留合并历史记录,这将导致 C 分支中的更改无法再次合并回 A 分支。您也可以查看此博客。如果你想让 A 分支回到合并 C 分支之前的原始状态(删除合并历史),你可以使用git resetandgit push --force命令。请参见下面的示例:

git checkout A
git reset --hard HEAD~
git push --force 

推荐阅读