Git Push后未创建Bitbucket PR的影响及撤销推送、中止PR的方法
问题1:执行git push后进入Bitbucket拉取请求创建页面但未创建PR,会产生什么影响?
- 核心影响只有一个:你的提交已经成功推送到远程对应分支,Bitbucket上的该分支会包含你push的代码变更。
- 未创建PR不会留下任何未完成的PR记录,也不会触发自动合并、通知团队成员等PR相关操作,完全不影响远程分支的现有状态,只是你没有发起合并请求的动作而已。
问题2:push后发现远程分支包含他人提交,不想创建PR,如何撤销推送并处理自己的提交?
因为你还没创建PR,所以不需要“中止PR”,只需要撤销已经推送到远程的提交,再重新处理自己的代码即可,步骤如下:
- 找到推送前的基准提交哈希
运行git log --oneline查看提交历史,找到你这次push之前,远程分支对应的最后一个提交的哈希值(比如看起来是abc123)。 - 回滚本地分支到基准状态
运行git reset --hard abc123,把本地分支强制回滚到推送前的状态,这会丢弃本地当前分支上你和他人的提交(注意:如果本地还有未提交的改动会被清除,提前做好备份)。 - 强制同步远程分支
运行git push --force-with-lease origin <你的分支名>,用本地回滚后的状态覆盖远程分支。这里用--force-with-lease而非--force是为了避免意外覆盖其他人在你推送后新提交的代码,更安全。 - 处理自己的提交
切换到目标分支,运行git cherry-pick <你的提交哈希>,把你自己的提交单独合并到目标分支,之后再正常push即可。
注意:如果这个远程分支是团队共享分支,撤销推送前最好和团队成员沟通,避免其他人已经拉取了包含多余提交的分支,引发本地代码冲突。
内容的提问来源于stack exchange,提问作者s460
相关产品推荐
相关产品推荐

