本地Git diff与GitHub PR diff差异确认:变基后内容一致却显差异?
GitHub PR Diff与本地Git Diff的区别
本地git diff branchA..branchB和GitHub PR的diff看似矛盾,本质是两者默认对比的维度不一样,核心机制并没有本质差异:
本地
git diff branchA..branchB是直接对比两个分支最新提交的文件内容快照,完全不管提交历史。哪怕两个分支的提交哈希全不一样,只要最终的文件内容完全一致,这个命令就会显示没有任何变更。你这里Branch B变基后虽然提交全是新的,但内容和Branch A一致,所以本地diff没输出。GitHub的PR默认展示的是源分支里存在、但目标分支历史中没有的提交,以及这些提交对应的变更。因为你给Branch B做了变基,所有提交都被重写成了新的哈希值,这些新提交在Branch A的历史里根本找不到,所以GitHub会把这些“新提交”的变更都列出来,哪怕最终内容和Branch A完全相同。不过你可以在PR的“Compare changes”区域切换对比方式,选择直接对比两个分支的最终内容,这时候就会和本地diff一样显示无差异。
内容的提问来源于stack exchange,提问作者Saadman Islam Khan
相关产品推荐
相关产品推荐

