Bitbucket Pull Request文件变更数与SourceTree不符的问题咨询
差异原因
- PR与合并的差异计算逻辑不同:Bitbucket默认统计的是源分支(branch-1)从与目标分支(branch-2)的共同祖先开始,到当前源分支的所有提交变更。如果branch-1是从branch-2的旧版本切出,之后branch-2有大量其他提交,或者branch-1包含了从其他分支合并的提交,这些无关的历史变更都会被算入PR的文件变更数。而SourceTree合并时,只会计算当前branch-1与branch-2的直接增量差异(即真正需要合并的变更),所以只显示你实际修改的2个文件。
- PR比较基准未同步最新状态:创建PR时如果branch-2不是最新版本,或者PR的比较基线被设置为某个旧提交,Bitbucket会基于旧基准计算差异,导致统计的文件数偏多。
解决方法
- 更新源分支后刷新PR:本地切换到branch-1,执行
git pull origin branch-2将branch-2的最新代码合并进来,解决冲突后推送到远程。之后刷新Bitbucket上的PR,系统会重新计算基于最新基线的差异,文件变更数会和实际修改一致。 - 手动调整PR比较基线:在Bitbucket的PR详情页,找到“Compare”区域,手动选择branch-2的最新提交作为比较基准,触发重新计算差异。
- 清理源分支冗余提交:如果branch-1存在无关的合并提交或冗余提交,可使用
git rebase -i <共同祖先提交ID>整理提交历史,只保留实际修改的提交,强制推送到远程后刷新PR。 - 本地验证差异:执行
git diff branch-2..branch-1 --name-only,如果输出是2个文件,说明是Bitbucket的基线问题,刷新或重新创建PR即可。
内容的提问来源于stack exchange,提问作者Riku
相关产品推荐
相关产品推荐

