《Git 新手:git diff 看不懂?先看加号减号》

举报
yd_293738966 发表于 2026/11/06 01:17:48 2026/11/06
【摘要】 提交前先看一眼 git diff:先看比的是哪两份,再看 @@ 定位到哪一块,最后只盯红绿行,错提交、漏提交都会少很多。

改完代码准备提交之前,先跑一遍 git diff,是个好习惯。但新手第一次看到 diff 的输出常常一头雾水:满屏的加号减号,到底在说什么?其实只要抓住三处,diff 就能看懂了。
先看第一处:diff 在比什么。最常用的 git diff,比的是工作区和暂存区。工作区就是你正在改的文件,暂存区就是你上次 git add 存进去的版本。diff 把这两份一对照,告诉你自从上次 add 以来又改了哪些地方。如果你刚 add 完就跑 git diff,输出是空的,不代表没改过,只代表改动都已经进暂存区了。想看暂存区和仓库比有什么不一样,用 git diff --staged。
再看第二处:每一块开头那行 @@。输出常常分成好几块,每块开头都有一行像 @@ -12,5 +12,7 @@ 这样的标记。它在说:下面这块内容,在旧文件里从第 12 行开始、共 5 行,在新文件里从第 12 行开始、共 7 行。减号后面是旧文件的行号,加号后面是新文件的行号。先看这行,你就知道这块改动发生在文件的哪个位置,不用从头翻到尾。
最后看第三处:加号行和减号行。每一行前面有个符号:减号开头的行是删掉的旧内容,通常显示红色;加号开头的行是新加的内容,通常显示绿色;前面是空格的行是没变的上下文,帮你定位改动周围的代码。读的时候只盯着红绿两色看:红的是拿掉的,绿的是补上的,空格行只是背景。一次改动里红绿行数差不多,说明是小修小补;如果某一块全是绿,说明是新写了一大段;如果全是红,可能是整段删掉了。
还有两个顺手的小用法。只想看某一个文件的改动,在后面加上文件名:git diff 文件名。改动太多看不过来,先看 git diff --stat,它只列每个文件改了几行,不展开内容,先挑重点文件再细看。
一句话总结:git diff 先看比的是哪两份,再看 @@ 定位到哪一块,最后只盯红绿行。养成提交前先看一眼 diff 的习惯,错提交、漏提交都会少很多。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。