如何用VSCode源代码控制界面查看Git当前提交与上一提交的差异?
解决方案
方法一:Git软重置(推荐)
直接在仓库终端执行以下命令,撤销最近一次提交但保留所有变更,这些变更会立刻出现在VSCode源代码控制标签中,支持图形化差异查看:
git reset --soft HEAD~1
- 该命令仅移动HEAD指针至上一提交,不会修改任何文件内容,所有原提交的变更会以「已暂存」状态展示,你可以像查看未提交修改一样,点击每个文件查看可视化差异。
- 查看完成后如需恢复原提交,执行以下命令即可复用之前的提交信息:
git commit -C HEAD@{1}
若希望变更以「未暂存」状态显示,使用默认的--mixed参数(可省略):
git reset HEAD~1
方法二:修复临时仓库复制方案
如果你偏好临时仓库的方式,改用以下命令可解决文件删除无法识别的问题:
- 在当前仓库根目录外创建完整的临时仓库副本:
git clone --no-hardlinks ./ ../temp-repo
--no-hardlinks参数确保复制完整文件而非系统硬链接,避免Git元数据丢失或状态异常。
2. 进入临时仓库并重置到上一提交的状态:
cd ../temp-repo git reset --hard HEAD~1
- 在VSCode中打开临时仓库,即可对比原仓库当前状态与临时仓库的HEAD~1状态,所有文件变更(包括删除、修改、新增)都会被正确识别。
额外技巧:无需重置直接查看差异
在VSCode 1.65中,无需修改仓库状态就能查看当前提交与上一提交的差异:
- 按下
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(Mac)打开命令面板。 - 输入并选择
Git: Compare HEAD with...选项。 - 在弹出的列表中选择
HEAD~1,VSCode会生成一个完整的差异对比面板,点击任意文件即可查看图形化的内容差异。
内容的提问来源于stack exchange,提问作者Adam Rutledge
相关产品推荐
相关产品推荐

