为何Github PR会显示已存在于develop分支的cherry pick变更?
问题分析:PR显示已存在于目标分支的变更内容
操作流程
- 初始状态下develop分支与feature1分支保持同步
- 误在develop分支提交了3次变更
- 切换至feature1分支,cherry pick了这3次提交的变更
- 在feature1分支新增1次提交
- 创建将feature1合并至develop的PR
当前该PR的Files Changed区域显示了那3次cherry pick的变更,但这些变更实际上已经存在于develop分支中。明明是从develop分支cherry pick的变更,为何PR会显示目标分支已存在的内容?
可能原因
核心原因在于cherry pick会生成全新的提交记录,每个新提交都拥有独立的哈希值。
GitHub对比分支差异时,是通过提交的哈希值来识别提交的——即便两次提交的代码内容完全一致,只要哈希值不同,就会被判定为不同的提交。因此,虽然这3次cherry pick的内容已经存在于develop分支,但由于它们是feature1分支上的全新提交(哈希值与develop上的原提交不同),PR的Files Changed区域仍会显示这些变更。
微软开发者社区的相关说明提到,GitHub对比两个分支的核心依据是提交哈希值,而非提交的内容本身。
内容的提问来源于stack exchange,提问作者JalajYadav_Avesta
相关产品推荐
相关产品推荐

