家装建材公司网站建设详细描述建设网站
git diff
git diff 是 Git 版本控制系统中用于比较文件差异的核心命令,可以显示工作目录、暂存区(Index)和仓库历史之间的变化。
通过对比不同版本或状态的文件内容,帮助开发者理解代码变更。
比较工作目录与暂存区
运行以下命令查看工作目录中尚未暂存的修改(与最后一次 git add 相比的差异):
git diff
比较暂存区与最新提交
添加 --cached 或 --staged 参数,显示已暂存但未提交的变更(与最新提交 HEAD 的差异):
git diff --cached
比较工作目录与最新提交
直接对比工作目录和最新提交(跳过暂存区):
git diff HEAD
比较两个历史提交
通过提交哈希或分支名对比两个历史版本。以下命令比较 commitA 和 commitB 的差异:
git diff commitA commitB
比较分支差异
对比两个分支(如 main 和 feature)的代码差异:
git diff main..feature
统计变更行数
添加 --stat 参数仅显示变更统计(增删行数)而非具体内容:
git diff --stat
忽略空格变化
使用 -w 参数忽略空格差异,聚焦实质性代码变更:
git diff -w
输出差异到文件
将差异结果重定向到文件(如 changes.diff),便于分享或存档:
git diff > changes.diff
代码示例解析差异
以下 Python 脚本模拟 git diff 的部分逻辑,对比两个文本文件的差异:
import difflibdef compare_files(file1, file2):with open(file1, 'r') as f1, open(file2, 'r') as f2:diff = difflib.unified_diff(f1.readlines(),f2.readlines(),fromfile=file1,tofile=file2)print(''.join(diff))compare_files('old_version.py', 'new_version.py')
典型工作流程示例
-
修改文件后检查变更
在本地编辑代码后,立即运行git diff确认修改内容是否符合预期。 -
提交前的复审
执行git diff --cached确保暂存区的变更准备就绪。 -
分支合并前检查
使用git diff main..feature预览即将合并的分支差异,避免冲突。 -
版本回退验证
通过git diff HEAD~1 HEAD检查最近一次提交的改动,确认是否需要回退。
