如何基于历史Commit Hash在VS Code中打开新窗口并比对代码?
对比Git历史正常提交与当前代码的方法
假设某历史提交中某项功能正常运行,之后修改了相关代码,想要对比该正常提交与当前代码的差异,无需在分支与旧提交间来回切换的实用方法如下:
全量差异快速对比
- 定位到功能正常的历史提交,获取它的Commit Hash;
- 确保当前处于有问题的分支上;
- 执行命令:
该命令会直接展示当前分支代码与目标历史提交的所有差异。git diff <commit-hash>
单个文件精准对比
如果全量差异过多难以定位问题,可以指定具体文件进行对比:
执行命令:
git diff <commit-hash> -- file-path
差异内容会在VIM编辑器中显示,聚焦单个文件的改动。
手动复制文件比对(VIM不满足需求时)
如果需要更灵活的比对方式,可手动导出旧版本文件:
- 执行
git checkout <commit-hash>切换到功能正常的历史提交; - 复制目标文件的全部内容;
- 执行
git checkout og_branch切回原分支; - 创建新文件(例如
settings_old.py),将复制的旧代码粘贴进去; - 把新旧文件并排打开,直观对比差异。
内容的提问来源于stack exchange,提问作者md12
相关产品推荐
相关产品推荐

