[Git] 查看修改的代码——git diff
Git 提供了多种方式来查看修改的代码,下面我详细介绍各种查看代码修改的方法。
一、查看未暂存的修改
1. 查看所有未暂存的修改
git diff 2. 查看特定文件的未暂存修改
git diff <文件名>
# 示例
git diff main.py
git diff src/utils.py 3. 查看特定目录的修改
git diff <目录路径>
# 示例
git diff src/ 二、查看已暂存的修改
1. 查看所有已暂存的修改
git diff --staged
# 或者
git diff --cached 2. 查看特定文件已暂存的修改
git diff --staged <文件名>
# 示例
git diff --staged main.py 三、查看工作区与最新提交的差异
1. 查看所有修改(包括暂存和未暂存)
git diff HEAD 2. 查看特定文件的所有修改
git diff HEAD <文件名> 四、查看提交之间的差异
1. 查看最新提交的修改
git show 2. 查看特定提交的修改
git show <提交哈希>
# 示例
git show abc123
git show HEAD~1 # 查看上一个提交 3. 比较两个提交之间的差异
git diff <提交1> <提交2>
# 示例
git diff abc123 def456
git diff HEAD~2 HEAD # 比较前两个提交与当前提交 4. 比较两个分支的差异
git diff <分支1>..<分支2>
# 示例
git diff main..develop
git diff origin/main..HEAD # 比较远程main与本地当前分支 五、更友好的查看方式
1. 简化的状态查看
git status -v
# 这会显示状态并在下面显示diff 2. 查看修改的文件列表(不显示具体内容)
git diff --name-only
git diff --name-only <提交1> <提交2> 3. 查看修改统计
git diff --stat
git diff --stat <提交1> <提交2> 输出示例:
src/main.py | 5 ++++-
src/utils.py | 3 ++-
2 files changed, 6 insertions(+), 2 deletions(-) 六、高级查看技巧
1. 逐行查看(分页显示)
git diff | less 2. 查看单词级别的差异(而不是行级别)
git diff --word-diff 3. 查看颜色化的差异
git diff --color-words 4. 查看指定作者的修改
git log --author="作者名" -p 5. 查看某个时间段的修改
git log --since="2024-01-01" --until="2024-01-31" -p 七、实际使用示例
场景 1:日常开发中查看修改
# 开发过程中随时查看未暂存的修改
git diff
# 查看特定文件的修改
git diff src/user_service.py
# 暂存部分文件后查看已暂存的修改
git add src/user_service.py
git diff --staged
# 查看所有修改(包括暂存和未暂存)
git diff HEAD 场景 2:代码审查前检查修改
# 查看本次功能开发的所有修改
git diff main..feature/new-auth
# 查看统计信息
git diff --stat main..feature/new-auth
# 查看具体修改内容
git diff main..feature/new-auth 场景 3:排查问题时查看历史修改
# 查看最近3次提交的修改
git show HEAD~2..HEAD
# 查看特定文件的修改历史
git log -p src/problem_file.py
# 查看谁在什么时候修改了某行代码
git blame src/problem_file.py 八、Git 图形化工具查看
1. 使用 gitk(内置图形化工具)
gitk
gitk <文件名> # 查看特定文件的历史
gitk --since="2 weeks ago" 2. 使用 IDE 集成
在 PyCharm、VSCode 等 IDE 中:
- Git Tab:可视化的修改查看
- 版本对比:与上一个版本对比
- 注解/Blame:查看每行代码的修改历史
九、实用的别名设置
为了更方便地查看修改,可以设置 Git 别名:
# 添加到 ~/.gitconfig
[alias]
# 查看简洁的diff
d = diff
# 查看已暂存的diff
ds = diff --staged
# 查看所有修改
dh = diff HEAD
# 查看统计
dst = diff --stat
# 查看最近一次提交的修改
last = show --name-only 使用方式:
git d
git ds
git dh
git dst
git last 十、完整工作流程示例
# 1. 开始开发前,查看当前状态
git status
# 2. 开发过程中,随时查看修改
git diff
# 3. 暂存文件前,查看具体文件的修改
git diff main.py
# 4. 暂存文件后,确认暂存的内容
git diff --staged
# 5. 提交前,最后确认所有修改
git diff HEAD
# 6. 提交后,查看这次提交的修改
git show
# 7. 推送前,比较与远程的差异
git diff origin/main..HEAD 总结
| 命令 | 用途 | 场景 |
|---|---|---|
git diff | 查看未暂存修改 | 开发中随时检查 |
git diff --staged | 查看已暂存修改 | 提交前确认 |
git diff HEAD | 查看所有修改 | 最终检查 |
git show | 查看最新提交 | 提交后验证 |
git diff branch1..branch2 | 比较分支差异 | 代码审查 |
git diff --stat | 查看修改统计 | 快速概览 |
掌握这些命令可以更好地理解代码变更,提高代码审查和调试的效率。
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
疯狂的青蛙
评论已关闭