git pull --rebase出现冲突时如何通过命令行查看对方的提交?
解决方法
你可以直接使用Git内置的特殊引用REBASE_HEAD定位到和你提交冲突的上游提交,不需要手动查提交ID:
- 查看冲突的上游提交完整修改:直接运行
git show REBASE_HEAD - 仅查看该上游提交对某一个冲突文件的修改:运行
git show REBASE_HEAD -- <冲突文件路径> - 如果你需要获取该提交的完整哈希值,运行
git rev-parse REBASE_HEAD即可输出。
补充说明
变基冲突场景下的两个冲突对应方你可以对应记忆:
REBASE_HEAD:指向你正在变基到的目标分支上的那个冲突提交,也就是你说的「对方提交」- 你在
git status里看到的待应用提交(本例中的def456):就是你自己的本地提交
冲突标记里<<<<<<< HEAD的内容对应REBASE_HEAD的改动,>>>>>>> <提交哈希>的内容对应你自己的本地提交改动。如果需要更直观对比两个提交对冲突文件的完整内容差异,可以分别查看两个版本的文件内容:
# 查看上游版本的文件内容 git show REBASE_HEAD:<冲突文件路径> # 查看你本地提交版本的文件内容 git show def456:<冲突文件路径>
内容的提问来源于stack exchange,提问作者Cam Jackson
相关产品推荐
相关产品推荐

