GitHub PR变更文件数多于本地推送文件数原因咨询
常见原因
出现这个问题基本逃不开以下3种情况:
- PR目标分支选错:本来要合入staging,误选了main/master或者其他特性分支,对比基准不对自然会带出大量不属于你的变更。
- 本地staging分支版本落后:你切新分支的时候没有先拉取远程staging的最新代码,本地staging停留在旧提交节点,你从旧节点切分支开发,最后PR对比的是远程最新的staging节点,两个节点之间的所有提交带的文件变更都会被算到你的PR里。
- 分支带了隐式提交:比如之前误操作把其他分支的提交merge到了你的开发分支,或是提交时带了被.gitignore规则遗漏的自动生成文件(部分场景下这类文件不会在你第一次git status时触发提示,后续提交时被带入)。
排查修复步骤
- 先检查PR页面顶部的目标分支选项,确认你选的合入目标是staging,不是其他分支。如果选错直接改对,刷新页面就能看到变更列表恢复正常。
- 如果目标分支没选错,本地执行以下命令同步最新staging代码并rebase到你的开发分支:
# 切到staging分支拉取远程最新代码 git checkout staging git pull origin staging # 切回你的开发分支 git checkout 你的开发分支名称 # 把最新staging的提交rebase到当前分支 git rebase staging
- rebase过程中如果出现冲突,只保留你自己修改的那一个文件的改动,其他所有冲突文件都直接采用staging分支的版本即可。
- 冲突解决完成后执行
git status确认变更列表,确认只有你修改的单个文件属于你的改动后,强推分支到远程:
git push -f origin 你的开发分支名称
- 回到PR页面刷新,变更文件数量就会和你实际修改的一致。
后续开发建议:每次从公共分支切新开发分支前,一定要先切到对应公共分支拉取最新远程代码,再从最新节点创建新分支,能大概率避免这类问题。
内容的提问来源于stack exchange,提问作者Musa Abdulhameed
相关产品推荐
相关产品推荐

