Day 14:Git差异查看:git diff命令的详细使用git diff vs git diff --staged对比演示

"你有没有经历过这样的场景:你改了代码,但记不清具体改了哪里?或者你提交了代码,但发现提交的不是你想要的?别担心,Git的git diff命令就是你的'代码侦探',帮你找出所有的'小改动'和'大改动'!"

🌟 为什么git diff是开发者的"代码显微镜"?

想象一下,你正在写一篇重要的论文,修改了几个段落,但不确定具体改了哪些地方。这时候,你需要一个"差异查看器"来帮助你找出所有的修改。Git的git diff命令就是这个"差异查看器",它能帮助你查看工作区和暂存区之间的差异,让你清楚地知道你做了哪些修改。

正如Git的核心设计理念所示:

"Git是一个内容寻址文件系统。这意味着,Git的核心部分是一个简单的键值对数据库。你可以向该数据库插入任意类型的内容,它会返回一个键值,通过该键值可以在任意时刻再次检索该内容。"

在Git中,git diff命令是查看代码差异的关键工具,它能帮助你:

  1. 查看未暂存的修改(工作区 vs 暂存区)
  2. 查看已暂存的修改(暂存区 vs 仓库)
  3. 避免提交错误的代码

🛠️ git diff vs git diff --staged:关键区别

命令 查看的差异 适用场景
git diff 工作区(未暂存) vs 暂存区 查看你当前修改但还未暂存的代码
git diff --staged 暂存区 vs 仓库 查看你已暂存但还未提交的代码

🧠 重点:理解Git的三个区域

在Git中,有三个关键区域:

  1. 工作区:你正在编辑的文件
  2. 暂存区 :准备提交的文件(git add后)
  3. 仓库 :已提交的代码(git commit后)

git diffgit diff --staged正是用来查看这些区域之间的差异。

🚀 在AtomGit(GitCode)平台上的实操步骤

✅ 步骤1:创建测试项目

bash 复制代码
# 创建项目文件夹
mkdir git-diff-demo && cd git-diff-demo

# 初始化Git仓库
git init

# 创建测试文件
echo "Initial content" > file.txt

# 添加文件到暂存区
git add file.txt

# 提交初始内容
git commit -m "Initial commit"

✅ 步骤2:使用git diff查看未暂存的修改

bash 复制代码
# 修改文件内容
echo "Modified content" > file.txt

# 查看工作区和暂存区的差异
git diff

输出示例

复制代码
diff --git a/file.txt b/file.txt
index 6d9c4e7..b4b1b30 100644
--- a/file.txt
+++ b/file.txt
@@ -1 +1 @@
-Initial content
+Modified content

✅ 步骤3:使用git diff --staged查看已暂存的修改

bash 复制代码
# 将修改添加到暂存区
git add file.txt

# 查看暂存区和仓库的差异
git diff --staged

输出示例

复制代码
diff --git a/file.txt b/file.txt
index 6d9c4e7..b4b1b30 100644
--- a/file.txt
+++ b/file.txt
@@ -1 +1 @@
-Initial content
+Modified content

✅ 步骤4:提交修改

bash 复制代码
# 提交修改
git commit -m "Modified file content"

# 查看提交历史
git log --oneline

❌ 常见问题避坑指南

🔴 问题1:git diff没有显示任何内容

原因:你已经将所有修改添加到暂存区,或者没有进行任何修改。

解决

  1. 确认你确实有修改的文件
  2. 确认你没有使用git add将修改添加到暂存区

🔴 问题2:git diff --staged没有显示任何内容

原因:你没有将任何修改添加到暂存区。

解决 :使用git add将修改添加到暂存区,然后再运行git diff --staged

🔴 问题3:git diff显示了太多内容

原因:你可能修改了多个文件,或者修改了很大的文件。

解决

  1. 使用git diff --name-only只显示文件名
  2. 使用git diff -U5显示5行上下文

💡 为什么需要这两个命令?

在实际开发中,这两个命令非常有用:

  1. git diff:在你修改代码后,想确认自己改了哪些地方,但还没有决定是否要提交时使用。
  2. git diff --staged:在你已经将修改添加到暂存区,但想在提交前再次确认修改内容时使用。

🎯 今日小结

项目 说明
git diff 查看工作区(未暂存)和暂存区之间的差异
git diff --staged 查看暂存区和仓库之间的差异
核心区别 git diff看未暂存的修改,git diff --staged看已暂存但未提交的修改
关键命令 git diff, git diff --staged

📅 明日预告:Day 15:Git历史回溯:如何查看和恢复之前的版本git checkout <commit-hash>实战+恢复误删文件

"明天我们将学习如何'穿越'到过去的代码版本,就像使用时间机器一样!你将学会如何恢复误删的文件,以及如何查看项目的完整历史。"


✨ 今日金句git diff不是魔法,但它能让你的代码修改变得透明和可控。今天你已经掌握了Git差异查看的核心技能,明天继续加油!

相关推荐
weixin_4624462320 小时前
使用 git filter-repo 统一提交作者信息(修复常见逻辑问题)
git
化名三爷20 小时前
SSH 公钥设置
git·gitee·ssh·ssh公钥·git公钥
web守墓人21 小时前
【git】git基础用法指南
git
小肉包de1 天前
本地项目第一次提交到远程仓库
git
酒书1 天前
mac电脑idea更改git用户名和密码
git·macos·intellij-idea
学好statistics和DS1 天前
.git folder
git
神秘代码行者1 天前
Git Restore 命令教程
大数据·git·elasticsearch
yanlaifan1 天前
git命令删除一个分支中的指定commit
git
m0_471199631 天前
【git】略微解析一下 git cherry-pick 命令
git
wacpguo1 天前
Git 远程公共分支 到 本地个人分支
git