使用IntelliJ提交代码创建PR时出现他人提交记录是什么原因?
问题根因
- 本地基础分支未同步远端最新状态就创建开发分支
你从本地feature-platform分支创建新分支时,本地的feature-platform版本已经落后于远端仓库的对应分支,其他开发者已经向远端feature-platform提交了新的代码。后续你执行git pull操作时,会自动将远端feature-platform上其他人的提交合并到你的开发分支中,这些提交就会出现在PR的提交列表里。 git pull默认合并逻辑引入额外提交git pull的本质是git fetch+git merge的组合操作,当你的本地分支和对应远端跟踪分支存在提交分叉时,git pull会自动生成合并提交,同时将远端分支上的所有新增提交(包含其他人的提交)带入你的当前开发分支。- Bitbucket PR的提交对比规则
Bitbucket PR默认会展示源分支相对于目标分支分叉点后的所有提交差异,只要你的源分支包含分叉点之外的其他提交,无论提交人是谁都会被列在PR提交列表中,和目标分支选择是否正确无关。
根治方案
- 每次创建新开发分支前,先将本地基础分支同步到远端最新状态:
git checkout feature-platform git fetch origin git rebase origin/feature-platform
同步完成后再基于本地feature-platform创建新的开发分支,即可避免基础分支版本落后的问题。
- 全局配置git pull默认使用rebase模式,避免自动生成合并提交:
git config --global pull.rebase true
配置完成后执行git pull时会默认用变基逻辑替代合并逻辑,不会引入额外的合并提交和其他人的提交记录。
- 你当前使用的交互式变基清理多余提交的方案是有效的,强制推送前注意确认本地分支代码正确,避免误覆盖其他提交。
内容的提问来源于stack exchange,提问作者Basuki Nath Kumar
相关产品推荐
相关产品推荐

