如何查看经git rebase -i修改后的提交消息差异?
查看Git改写前后的提交消息差异
步骤1:找到旧提交的哈希值
执行git reflog命令,查看本地仓库的操作日志。你会看到类似这样的记录:
abc1234 HEAD@{0}: rebase -i (finish): returning to refs/heads/main def5678 HEAD@{1}: commit: 旧的提交消息内容
这里的def5678就是被你改写的旧提交哈希,abc1234是改写后的新提交哈希。
步骤2:对比新旧提交的消息差异
有几种简单的方式可以对比:
方式一:分别查看新旧提交的消息
执行以下命令分别输出旧提交和新提交的消息:git show --format=format:%B def5678 git show --format=format:%B abc1234你可以直接对比两个输出结果的差异。
方式二:直接生成差异对比
用git diff结合进程替换,直接输出两个提交消息的差异:git diff --no-index <(git show --format=format:%B def5678) <(git show --format=format:%B abc1234)这个命令会像普通文件diff一样,高亮显示提交消息的修改部分。
方式三:对比整个提交对象的差异
如果想确认除了提交消息外,提交内容是否有变化(仅修改提交消息的话内容通常不变),可以直接对比两个提交:git diff def5678 abc1234输出里会包含提交消息的差异,以及提交内容的差异(如果有的话)。
小技巧
如果旧提交是rebase前的HEAD,也可以直接用HEAD@{1}代替旧提交哈希,比如:
git diff --no-index <(git show --format=format:%B HEAD@{1}) <(git show --format=format:%B HEAD)
内容的提问来源于stack exchange,提问作者Rob Bednark
相关产品推荐
相关产品推荐

