git 重置以删除 master 分支上的多个合并拉取请求

git reset to remove multiple merge pull requests on master branch

我有一个 git 仓库,有两个分支,dev 和 master。我一直在 dev 上开发,然后我做了一个 pull request 将 dev 合并回 master,然后我做了一个发布。然后,我在 dev 上添加了一些提交,然后我做了另一个 pull request。现在我很遗憾,我没有等一下就做一个拉取请求而不是多个发布请求。我正在考虑 git reset 到 master 上的点,就在我执行第一个拉取请求并提交和推送之前,以便摆脱后续合并,这样我就可以重做一个拉取请求。我在master上的情况请看下图:

A - merge_pullreqest1 - merge_pullreqest2

我可以继续 master 并执行以下操作:git reset A,然后 git commit -m "clean slate",然后 git push。接下来,转到我的 dev 分支并执行最终拉取请求(包括 merge_pullrequest1 和 merge_pullrequest2 中的所有更改)。这行得通吗?

你必须git重置--hard A(从分支中获取历史记录并忘记两次合并),然后你可以合并第二次拉取请求修订以从开发人员那里获得单个合并。然后你将不得不 git push --force 到远程。