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

如何将旧Commit ID与分支最新Commit对比,查看代码留存情况

如何通过旧Commit ID对比最新分支代码,查看你的代码留存情况

嘿,这个问题我之前处理项目协议变更时也遇到过,刚好可以给你几个实用的方法来搞定它!

方法一:用 git diff 直接对比旧Commit与最新分支代码

这是最直观的方式,能直接看到你旧提交里的代码和当前最新版本的差异。

  1. 基础命令格式:

    git diff <你的旧Commit ID> HEAD -- <目标文件名>
    
    • <你的旧Commit ID>:就是你当初提交代码时的那个哈希值(比如 a1b2c3d)
    • HEAD:代表当前分支的最新提交
    • <目标文件名>:指定要检查的文件,如果想全局对比整个项目,直接去掉这个参数就行
  2. 针对你的示例:
    假设你的旧Commit ID是 f45678,代码在 src/utils.cpp 文件里,执行命令:

    git diff f45678 HEAD -- src/utils.cpp
    

    输出里会用红色标记旧Commit中被删除/修改的内容,绿色标记新增的内容。如果你的 updateRefs(b,k); 这行没有出现在红色或绿色块里,说明它完全留存到了最新代码中;只有第一行 int b = j+k; 会显示为红色删除、绿色新增为 int b = j+m;。

方法二:用 git blame 追踪单代码行的归属

如果只想确认某一行代码是不是还保留着,git blame 能直接告诉你这行最后是谁修改的。

  1. 基础命令格式:

    git blame -L <起始行号>,<结束行号> <目标文件名>
    
    • -L:用来指定要检查的代码行范围,比如你要查第15行的 updateRefs,就写 -L 15,15
  2. 示例操作:

    git blame -L 15,15 src/utils.cpp
    

    输出会显示这行代码对应的最新Commit ID、作者信息、提交时间。如果显示的是你的旧Commit ID和名字,说明这行代码完全没被修改过;如果是其他作者的Commit,就表示这行已经被改动了。

    要是担心你的代码被移到了其他文件,可以加 -C 参数追踪代码移动:

    git blame -C src/utils.cpp
    

方法三:用 git show 提取旧Commit变更,再手动核对

如果你想先确认自己当初提交了哪些内容,再和最新代码对比,可以用这个方法:

  1. 查看旧Commit的具体变更:

    git show <你的旧Commit ID> -- <目标文件名>
    

    这个命令会输出你当时提交的完整diff,能清晰看到你新增/修改的所有代码行。

  2. 打开最新版本的对应文件,直接对比你当初写的代码(比如 updateRefs(b,k);)是否还存在、有没有被修改。

小补充:找不到旧Commit ID怎么办?

如果记不清旧Commit的哈希值,可以用这个命令筛选出你所有的提交:

git log --author="你的名字/邮箱"

从输出里找到你当初提交代码的那条记录,复制对应的Commit ID就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:12:54