未创建特性分支提交代码,PR显示他人提交,关闭PR会丢失他人提交吗?
问题解答
核心结论
关闭这个PR不会导致他人的提交丢失。
原因说明
PR本质只是一个「合并请求」,它的作用是展示两个分支之间的提交差异,请求仓库维护者将你的分支合并到目标分支。关闭PR仅仅是取消这个合并申请,不会对仓库里任何分支的提交记录做删除、修改操作。他人的提交本来就存在于对应的分支(比如你提交代码的分支或目标分支)中,和这个PR的状态完全无关。
至于PR里出现他人提交的原因,大概率是你直接在一个已经包含他人提交的共享分支(比如main)或者未及时拉取最新代码的分支上提交了自己的代码,导致你的分支和目标分支的差异里包含了这些他人的提交。
后续修复建议
- 先创建一个新的特性分支,基于目标分支的最新版本:
git checkout -b 你的特性分支名 origin/目标分支名 - 把你自己的提交从原来的分支「挑」到新分支上(假设你只有一个提交,哈希值为
abc123):git cherry-pick abc123 - 如果之前是直接在共享分支提交的代码,需要把该分支重置回远程的最新状态(注意:这个操作会清除你在该分支的本地提交,确保已经用
cherry-pick转移了自己的代码):git checkout 原分支名 git reset --hard origin/原分支名 - 推送新的特性分支到远程,重新发起只包含你自己提交的PR。
内容的提问来源于stack exchange,提问作者Noble
相关产品推荐
相关产品推荐

