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

如何对比本地未提交改动与远程分支的文件差异

未提交状态下对比本地与远程Git分支差异的实现方法

对比前先执行git fetch origin,把远程分支的最新状态同步到本地,避免因为本地缓存的远程分支版本过旧导致对比结果不准。

方案1:临时标记法(推荐,无提交残留)

这个方法不会真的提交或暂存你的构建文件,只是临时让Git识别到这些新建文件需要参与对比,操作完可以一键恢复:

  1. 执行标记命令,指定需要纳入对比的未跟踪文件:
    • 只需要对比dist目录下的新建产物:执行git add -N dist/
    • 需要对比本地所有新建、修改的文件:执行git add -N .

    说明:-N是--intent-to-add的缩写,作用只是在Git的索引里给对应文件加个「计划纳入跟踪」的标记,不会暂存文件内容,也不会生成任何提交记录。

  2. 执行常规对比命令就能看到完整差异,包括dist目录下的新建文件:
    git diff origin/develop
    
    如果只需要列出来哪些文件有变动、不需要看具体代码差异,执行:
    git diff --name-only origin/develop
    
  3. 对比完成后,执行git reset就能撤销所有临时标记,回到操作前的状态,本地的文件不会有任何修改或丢失。

方案2:Stash临时存储法

如果不想改动暂存区状态,可以用stash把所有本地改动临时存起来再对比:

  1. 把工作区所有改动(包括未跟踪的新建文件)临时存入stash栈:
    git stash push -u -m "temp for diff"
    
  2. 对比临时存储的内容和远程develop分支的差异:
    git diff origin/develop stash@{0}
    
  3. 对比完成后执行git stash pop,就能把之前临时存储的所有改动恢复到工作区,不会丢失任何本地内容。

原命令不生效的原因

你之前执行git diff origin/develop看不到dist目录的文件,是因为Git的diff命令默认只会对比已经被纳入版本跟踪的文件,你本地新建的dist目录属于未跟踪文件,默认不会被计入对比范围,必须通过上述方式让Git把这些文件纳入对比逻辑。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 18:42:33