登录
注册
开源
企业版
高校版
搜索
帮助中心
使用条款
关于我们
开源
企业版
高校版
私有云
模力方舟
登录
注册
就在本周六,成都站 Gitee Talk | 模力方舟 AI 应用开发沙龙抢占最后席位!聚焦 AI 开发全链路,结识技术同频人~
代码拉取完成,页面将自动刷新
捐赠
捐赠前请先登录
取消
前往登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
Watch
不关注
关注所有动态
仅关注版本发行动态
关注但不提醒动态
23
Star
189
Fork
46
yanleweb
/
interview-question
代码
Issues
1091
Pull Requests
0
Wiki
统计
流水线
服务
质量分析
Jenkins for Gitee
腾讯云托管
腾讯云 Serverless
悬镜安全
阿里云 SAE
Codeblitz
SBOM
我知道了,不再自动展开
更新失败,请稍后重试!
移除标识
内容风险标识
本任务被
标识为内容中包含有代码安全 Bug 、隐私泄露等敏感信息,仓库外成员不可访问
介绍一下 git diff【热度: 396】
待办的
#ICVM3L
yanleweb
拥有者
创建于
2025-08-31 18:11
**关键词**:git diff > 作者备注 > > 这个比较冷门, 平常很多时候都用不上, 基本上可以当做科普了解 > 如果当面试官问到:代码有问题, 怎么排查是哪一个 commit 引入的, 可以参考以下的回答 `git diff` 是 Git 中用于**查看文件修改差异**的核心命令,能够展示不同版本、不同状态之间的代码变更,帮助你跟踪和理解代码的变化过程。 ### 核心作用 比较不同版本或不同状态下的文件内容差异,主要场景包括: - 工作区与暂存区的差异 - 暂存区与最新提交的差异 - 不同提交之间的差异 - 不同分支之间的差异 ### 常用用法 #### 1. 查看工作区与暂存区的差异(最常用) ```bash git diff ``` - 显示**工作区中已修改但未暂存**(未执行 `git add`)的文件与暂存区的差异 - 输出格式:`-` 表示删除的内容,`+` 表示新增的内容,行号用于定位位置 #### 2. 查看暂存区与最新提交的差异 ```bash git diff --cached # 或 git diff --staged ``` - 显示**已暂存(执行过 `git add`)但未提交**的内容与最近一次提交(`HEAD`)的差异 - 常用于提交前确认暂存的内容是否正确 #### 3. 查看工作区与最新提交的差异 ```bash git diff HEAD ``` - 同时显示**未暂存**和**已暂存**的所有修改与最新提交的差异 - 相当于 `git diff`(工作区 vs 暂存区) + `git diff --cached`(暂存区 vs HEAD)的合并结果 #### 4. 比较两个提交之间的差异 ```bash git diff <提交ID1> <提交ID2> ``` - 示例:比较 `a1b2c3d` 和 `e4f5g6h` 两个提交的差异 ```bash git diff a1b2c3d e4f5g6h ``` - 若只关心某个文件的差异,可在最后指定文件名: ```bash git diff a1b2c3d e4f5g6h src/index.js ``` #### 5. 比较两个分支之间的差异 ```bash git diff <分支1> <分支2> ``` - 示例:比较 `feature/login` 分支和 `main` 分支的差异 ```bash git diff feature/login main ``` #### 6. 查看某次提交相对于上一次提交的差异 ```bash git diff <提交ID>^ <提交ID> # ^ 表示该提交的父提交 # 简化写法: git diff <提交ID>~1 <提交ID> ``` - 更简洁的方式:直接查看某次提交的修改内容 ```bash git show <提交ID> # 相当于 git diff <提交ID>^ <提交ID> ``` ### 输出格式说明 `git diff` 的输出通常包含以下部分: ```diff diff --git a/src/index.js b/src/index.js # 比较的文件 index 1234567..abcdefg 100644 # 文件的索引信息 --- a/src/index.js # 源文件(旧版本) +++ b/src/index.js # 目标文件(新版本) @@ -5,7 +5,7 @@ function greet() { # 差异所在的行范围 console.log("Hello, world!"); - console.log("This is old code"); + console.log("This is new code"); # +表示新增内容 return true; } ``` ### 实用选项 - `-w`:忽略空白字符的差异(如空格、换行的调整) ```bash git diff -w # 忽略空白差异 ``` - `--stat`:只显示文件修改的统计信息(不显示具体内容) ```bash git diff --stat # 例如:src/index.js | 2 +-(表示该文件有2行修改,1行新增1行删除) ``` - `-p`:显示完整的差异内容(默认就是这个行为,可省略) ### 总结 `git diff` 是代码审查和变更跟踪的重要工具,核心是通过比较不同“版本快照”之间的差异,帮助你: - 提交前确认修改内容 - 回顾历史变更 - 了解分支之间的差异 - 排查代码问题 熟练使用 `git diff` 能大幅提升对代码变更的掌控力,是日常 Git 操作中不可或缺的命令。
**关键词**:git diff > 作者备注 > > 这个比较冷门, 平常很多时候都用不上, 基本上可以当做科普了解 > 如果当面试官问到:代码有问题, 怎么排查是哪一个 commit 引入的, 可以参考以下的回答 `git diff` 是 Git 中用于**查看文件修改差异**的核心命令,能够展示不同版本、不同状态之间的代码变更,帮助你跟踪和理解代码的变化过程。 ### 核心作用 比较不同版本或不同状态下的文件内容差异,主要场景包括: - 工作区与暂存区的差异 - 暂存区与最新提交的差异 - 不同提交之间的差异 - 不同分支之间的差异 ### 常用用法 #### 1. 查看工作区与暂存区的差异(最常用) ```bash git diff ``` - 显示**工作区中已修改但未暂存**(未执行 `git add`)的文件与暂存区的差异 - 输出格式:`-` 表示删除的内容,`+` 表示新增的内容,行号用于定位位置 #### 2. 查看暂存区与最新提交的差异 ```bash git diff --cached # 或 git diff --staged ``` - 显示**已暂存(执行过 `git add`)但未提交**的内容与最近一次提交(`HEAD`)的差异 - 常用于提交前确认暂存的内容是否正确 #### 3. 查看工作区与最新提交的差异 ```bash git diff HEAD ``` - 同时显示**未暂存**和**已暂存**的所有修改与最新提交的差异 - 相当于 `git diff`(工作区 vs 暂存区) + `git diff --cached`(暂存区 vs HEAD)的合并结果 #### 4. 比较两个提交之间的差异 ```bash git diff <提交ID1> <提交ID2> ``` - 示例:比较 `a1b2c3d` 和 `e4f5g6h` 两个提交的差异 ```bash git diff a1b2c3d e4f5g6h ``` - 若只关心某个文件的差异,可在最后指定文件名: ```bash git diff a1b2c3d e4f5g6h src/index.js ``` #### 5. 比较两个分支之间的差异 ```bash git diff <分支1> <分支2> ``` - 示例:比较 `feature/login` 分支和 `main` 分支的差异 ```bash git diff feature/login main ``` #### 6. 查看某次提交相对于上一次提交的差异 ```bash git diff <提交ID>^ <提交ID> # ^ 表示该提交的父提交 # 简化写法: git diff <提交ID>~1 <提交ID> ``` - 更简洁的方式:直接查看某次提交的修改内容 ```bash git show <提交ID> # 相当于 git diff <提交ID>^ <提交ID> ``` ### 输出格式说明 `git diff` 的输出通常包含以下部分: ```diff diff --git a/src/index.js b/src/index.js # 比较的文件 index 1234567..abcdefg 100644 # 文件的索引信息 --- a/src/index.js # 源文件(旧版本) +++ b/src/index.js # 目标文件(新版本) @@ -5,7 +5,7 @@ function greet() { # 差异所在的行范围 console.log("Hello, world!"); - console.log("This is old code"); + console.log("This is new code"); # +表示新增内容 return true; } ``` ### 实用选项 - `-w`:忽略空白字符的差异(如空格、换行的调整) ```bash git diff -w # 忽略空白差异 ``` - `--stat`:只显示文件修改的统计信息(不显示具体内容) ```bash git diff --stat # 例如:src/index.js | 2 +-(表示该文件有2行修改,1行新增1行删除) ``` - `-p`:显示完整的差异内容(默认就是这个行为,可省略) ### 总结 `git diff` 是代码审查和变更跟踪的重要工具,核心是通过比较不同“版本快照”之间的差异,帮助你: - 提交前确认修改内容 - 回顾历史变更 - 了解分支之间的差异 - 排查代码问题 熟练使用 `git diff` 能大幅提升对代码变更的掌控力,是日常 Git 操作中不可或缺的命令。
评论 (
0
)
登录
后才可以发表评论
状态
待办的
待办的
进行中
已完成
已关闭
负责人
未设置
标签
web应用场景
未设置
标签管理
里程碑
高
未关联里程碑
Pull Requests
未关联
未关联
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
未关联
分支 (1)
标签 (64)
master
0.0.76
0.0.75
0.0.74
0.0.73
0.0.72
0.0.71
0.0.70
0.0.69
0.0.68
0.0.67
0.0.66
0.0.65
0.0.64
0.0.63
0.0.62
0.0.61
0.0.60
0.0.59
0.0.58
0.0.57
0.0.56
0.0.55
0.0.54
0.0.53
0.0.52
0.0.51
0.0.50
0.0.49
0.0.48
0.0.47
0.0.46
0.0.45
0.0.44
0.0.43
0.0.42
0.0.41
0.0.40
0.0.39
0.0.38
0.0.37
0.0.36
0.0.35
0.0.34
0.0.33
0.0.32
0.0.31
0.0.30
0.0.29
0.0.28
0.0.27
0.0.26
0.0.25
0.0.24
0.0.23
0.0.22
0.0.21
0.0.20
0.0.19
0.0.18
0.0.17
0.0.16
0.0.15
0.0.14
0.0.13
开始日期   -   截止日期
-
置顶选项
不置顶
置顶等级:高
置顶等级:中
置顶等级:低
优先级
不指定
严重
主要
次要
不重要
参与者(1)
TypeScript
1
https://gitee.com/yanleweb/interview-question.git
git@gitee.com:yanleweb/interview-question.git
yanleweb
interview-question
interview-question
点此查找更多帮助
搜索帮助
Git 命令在线学习
如何在 Gitee 导入 GitHub 仓库
Git 仓库基础操作
企业版和社区版功能对比
SSH 公钥设置
如何处理代码冲突
仓库体积过大,如何减小?
如何找回被删除的仓库数据
Gitee 产品配额说明
GitHub仓库快速导入Gitee及同步更新
什么是 Release(发行版)
将 PHP 项目自动发布到 packagist.org
评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册