切换·Esc 返回

差异对比Diff

Git 专区
逐行标出代码改动前后有哪些不同

diff 通常用绿色加号表示新增、红色减号表示删除。提交前要分别检查未暂存和已暂存的差异,确认没有误删、调试代码或敏感信息。

改动前- <button>点我</button>  </section>
改动后+ <button class="btn">立即开始</button>  </section>
$ git diff
逐行对账:红色 - 是删掉的,绿色 + 是新增的。commit 前先 diff 一眼,确认改的就是你想改的;大片红色删除行要警惕,可能是老功能被顺手删了。

什么时候用

  • git diff:看还没 add 的改动,提交前最后一眼
    $ git diff- <button>点我</button>+ <button class="btn btn-primary">立即开始</button>红减绿加,还没 add 的改动都在这
  • git diff HEAD~1 HEAD:比较最近两个提交,复盘上一版动了什么
    $ git diff HEAD~1 HEAD 2 files changed, 18 insertions(+), 4 deletions(-)明确比较最近两个提交
  • 在合并请求的 Files changed 页面集中检查改动
    📄 index.html+18 −4
    - 点我+ 立即开始
  • AI 大改之后先 diff 再 commit:看懂了再存档
    AI 改完git diff 逐行看commit 存档

什么时候不用

  • AI 改完 47 个文件直接 commit:出问题改了哪几行说不清
    $ git add . && git commit -m "AI 改的"47 files changed 直接提交出问题了?改了哪几行根本说不清
  • diff 里躺着 console.log 和调试代码,一起提交进存档
    + console.log("test 123")+ // debugger;调试垃圾跟着进了存档diff 时顺手删掉再 commit
  • 只看文件名列表不看行:AI 顺手改的文件悄悄混进去
    3 files changed —— 哦,知道了只看文件名不看行,AI 顺手改的文件混进去
  • 看见大片红色删除行也不管:老功能被 AI 顺手删了
    - <nav>…整个导航栏…</nav>- <footer>…</footer>+ <nav>新导航</nav>大片红:AI 把页脚也删了,你没看见?
组成结构 · Anatomy
📄 index.html @@ -12,5 +12,5 @@ - <button>点我</button> + <button class="btn btn-primary">立即开始</button>
1文件头File Header这段改动属于哪个文件,一个文件一段
2位置标记Hunk @@@@ -12,5 +12,5 @@:改动在第 12 行附近
3删除行- Removed红色带 - 号:旧版本有、新版本删掉的行
4新增行+ Added绿色带 + 号:新版本多出来的行
常见变体 · Variants
看未暂存改动git diff
git diff
查看工作区相对暂存区改了什么
看已暂存改动git diff --staged
git diff --staged
add 之后、commit 之前复核
比较最近两次提交git diff commits
git diff HEAD~1 HEAD
复盘最近一次提交到底改了什么
两个分支比git diff main..feat
git diff main..feat/dark-mode
合并前先看分支领先了多少
典型使用场景
终端 git diff
zsh — my-first-page
$ git diff diff --git a/index.html b/index.html @@ -12,5 +12,5 @@ - <button>点我</button> + <button class="btn btn-primary">立即开始</button> 红色带 - 是删的,绿色带 + 是加的
比较最近两个提交
zsh — my-first-page
$ git diff HEAD~1 HEAD --stat index.html | 10 ++++++---- style.css | 12 ++++++++++++ 2 files changed, 18 insertions(+), 4 deletions(-) $ git diff HEAD~1 HEAD 再看逐行明细,复盘 AI 这一轮干了啥
GitHub Files changed 页
ConversationCommits 3Checks ✓Files changed 2
📄 index.html +18 −4
@@ -12,5 +12,5 @@
- <button>点我</button>
+ <button class="btn btn-primary">立即开始</button>
AI 大改后先 diff 再 commit
🤖 AI 大改一轮 🔍 git diff 逐行看 ✅ git commit 存档