You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Git冲突场景下如何简单可靠获取theirs提交哈希值?

获取冲突场景下Git的ours/theirs提交哈希值

当Git工作区处于合并、变基、拣选提交、回退甚至stash pop等冲突状态时,我们可以通过git checkout --ours/--theirs path/file或git show :n:path/file(其中n为1、2、3)获取单个文件的ours/theirs/base版本,但如果需要拿到这些版本对应的提交哈希(SHA),可以参考以下方法:

获取ours的提交哈希

直接执行以下命令即可,无论哪种冲突场景,HEAD始终指向当前工作区所属的基础提交:

git rev-parse HEAD

获取theirs的提交哈希

不同冲突场景对应不同的Git伪引用,你可以通过以下方式统一检测并获取:

通用命令

执行这条命令会依次检查所有可能的冲突伪引用,返回当前场景对应的theirs提交哈希:

git rev-parse --verify MERGE_HEAD 2>/dev/null || git rev-parse --verify REBASE_HEAD 2>/dev/null || git rev-parse --verify CHERRY_PICK_HEAD 2>/dev/null || git rev-parse --verify REVERT_HEAD 2>/dev/null || git rev-parse --verify stash@{0} 2>/dev/null

各场景对应伪引用说明

  • 合并(merge)冲突:MERGE_HEAD指向你要合并进来的分支顶端提交
  • 变基(rebase)冲突:REBASE_HEAD指向当前正在应用的目标提交(即触发冲突的theirs版本)
  • 拣选提交(cherry-pick)冲突:CHERRY_PICK_HEAD指向你正在拣选的目标提交
  • 回退(revert)冲突:REVERT_HEAD指向你试图回退的目标提交
  • stash pop/apply冲突:此时stash未被清除,stash@{0}对应当前冲突的stash对象(stash本质是一个特殊的提交)

这些伪引用仅在Git处于冲突状态时存在,冲突解决完成后会被自动删除。

内容的提问来源于stack exchange,提问作者xmedeko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 04:47:10