提交代码前先看一眼:Git Diff 让你清楚知道自己改了什么

举报
AiGuoHou 发表于 2026/11/08 12:46:05 2026/11/08
【摘要】 修改代码后,你是否遇到过忘记改了哪些文件、误删重要内容,或者提交时把不该提交的修改也一起带上的情况?Git 自带的 diff 命令可以逐行比较文件变化,帮助你在提交之前检查修改内容。本文从零介绍几个最实用的用法。

使用 Git 管理项目时,很多初学者会直接修改文件,然后执行 git add 和 git commit。虽然这样可以保存代码,但如果修改较多,很容易忽略一些细节。

其实,只要养成提交前执行 git diff 的习惯,就能大幅减少这类问题。它不需要额外安装软件,只要项目已经使用 Git 管理,就可以直接使用。

一、Git Diff 到底是什么?

git diff 是 Git 内置的差异比较工具,主要用于查看两个版本之间有哪些变化。

它会用两种符号标记修改:

  • +:新增的内容。
  • -:删除的内容。

例如,原来的文件是:

Hello World
Welcome to Git

修改后变成:

Hello World
Welcome to Git
Git is useful

使用 git diff 查看时,你会看到类似这样的结果:

 Hello World
 Welcome to Git
+Git is useful

这样就能快速知道自己新增了哪一行,而不必手动对照两个文件。

二、最常用的四个命令

1. 查看尚未暂存的修改

git diff

这是最基础的用法。

当你修改了已经被 Git 跟踪的文件,但还没有执行 git add 时,Git 会显示这些修改与暂存区之间的差异。

注意:新建但尚未被 Git 跟踪的文件,默认不会出现在普通的 git diff 结果中。

2. 查看已经暂存的修改

git diff --staged

也可以使用:

git diff --cached

这两个命令效果相同,都是比较暂存区与最近一次提交(通常是 HEAD)之间的变化。

什么时候使用?

当你已经执行 git add,准备提交代码时,可以运行这个命令,确认真正准备提交的内容。

这是一个非常值得养成的习惯。

3. 查看修改概况

git diff --stat

如果修改涉及很多文件,不想逐行阅读,可以使用这个命令。

它会显示每个文件修改了多少行,以及整体修改规模。

例如:

index.html | 10 +++++-----
style.css  |  6 +++---
app.js     |  8 ++++++++
3 files changed

适合快速了解一次修改涉及哪些文件。

4. 只查看修改过的文件名称

git diff --name-only

这个命令只输出文件路径,不展示具体内容。

如果你只想确认本次修改涉及哪些文件,它会比完整差异列表更加简洁。

三、动手练习:检查一次完整的修改

下面通过一个简单例子,把上述命令串联起来。

假设你有一个 Git 项目,里面包含 README.md 文件,原始内容如下:

# 我的学习笔记

正在学习 Git。

现在,你决定增加一行说明:

# 我的学习笔记

正在学习 Git。
每天练习一个新命令。

第一步:查看修改。

在项目终端执行:

git diff

你会看到新增的那一行以 + 开头。

第二步:把文件加入暂存区。

git add README.md

这一步不会立即创建提交,而是把当前文件内容放入暂存区,作为下一次提交的候选内容。

第三步:再次检查。

git diff --staged

这时应该看到刚才新增的文字。

为什么还要检查一次?

因为暂存区保存的是准备提交的内容。如果你在 git add 之后又修改了文件,那么工作区与暂存区就可能不一致。此时 git diff 可以查看后续修改,而 git diff --staged 则查看已经暂存的内容。

第四步:确认无误后提交。

git commit -m "更新学习笔记"

至此,一次简单的修改、检查和提交就完成了。

四、两个提高效率的小技巧

除了基本用法,还有两个值得了解的功能。

技巧一:检查多余空格问题

git diff --check

它可以帮助检查差异中的部分空白字符问题,例如行尾多余空格,避免一些不必要的格式问题。

在提交代码之前执行一次,通常是个好习惯。

技巧二:只检查指定文件

git diff -- README.md

如果项目文件很多,但你只关心某个文件,可以在命令后面添加文件路径。

查看已经暂存的指定文件,则可以使用:

git diff --staged -- README.md

这样就不必在大量修改中反复寻找目标文件。

五、提交前建立一个简单检查流程

日常开发中,可以把下面这组命令作为自己的提交检查清单:

git status
git diff
git add .
git diff --staged
git diff --check
git commit -m "描述本次修改"

其中,git status 用于了解文件状态,git diff 检查尚未暂存的修改,git diff --staged 检查准备提交的内容。

特别提醒:git add . 会将当前目录下符合条件的变更加入暂存区,使用前应确认没有把日志、临时文件、密钥或其他不需要提交的内容一起加入。对于重要项目,也可以改用 git add 文件名 精确选择文件。

总结: Git Diff 虽然只是一个简单的比较命令,却能帮助你看清每一次修改。记住 git diff 查看工作区、git diff --staged 查看暂存区、git diff --check 检查空白字符问题,养成提交前检查的习惯,就能让代码管理更加安全、有条理。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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