本地Git master超前origin/master 2个提交diff无输出如何查看差异
问题根因
你执行git pull后生成了无实际内容变更的合并提交,最终本地master分支的工作树内容和远端origin/master完全一致,所以所有直接对比文件内容的git diff命令都无输出。从你提供的git log可以看出,本地master超前的2个提交分别是11d13f4和合并提交a290975。
查看超前提交具体改动的方法
- 查看单个提交的改动内容:
查看合并提交的完整改动(merge提交需要加-m参数才能展示完整差异):
查看另一个超前提交的改动:git show -m a290975git show 11d13f4 - 批量查看所有超前提交的改动:
直接输出本地master比远端多的所有提交的改动详情:git log origin/master..master -p
本地master分支修复方案
确认你的BugFix分支已经保留了所有需要的开发改动后,执行以下操作重置本地master到和远端一致的状态,避免后续操作冲突:
- 切换到BugFix分支确认改动完整:
git checkout BugFix git log -p # 确认所有需要的改动都存在 - 切回master分支执行硬重置:
git checkout master git reset --hard origin/master
重置后本地master就和远端同步,不会再有超前提交的提示,你可以正常基于最新的master分支做后续开发,原有改动已经保存在BugFix分支可以直接提PR。
内容的提问来源于stack exchange,提问作者Brian
相关产品推荐
相关产品推荐

