git diff 是 Git 中的一个命令,用于显示文件之间的差异。它可以比较暂存区和工作目录中的文件差异、不同提交之间的差异,以及分支之间的差异等。下面详细解释 git diff 的用法和常见场景。
基本用法
1. 查看工作目录与暂存区的差异
git diff
- 这个命令会显示工作目录中未暂存的更改与暂存区中的文件之间的差异。即你修改了哪些文件,但还没有使用
git add将这些更改添加到暂存区。
2. 查看暂存区与最后一次提交的差异
git diff --cached
- 这个命令会显示暂存区的更改与最后一次提交之间的差异。即你已经使用
git add将更改添加到暂存区,但还没有提交。
3. 查看两个提交之间的差异
git diff <commit1> <commit2>
- 这个命令显示两个特定提交之间的差异。可以使用提交的 SHA 值、分支名等来指定。
4. 查看分支之间的差异
git diff <branch1> <branch2>
- 这个命令显示两个分支之间的差异。例如,您可以查看
master和feature分支之间的差异。
输出格式
git diff 的输出通常显示如下内容:
- 行前缀:
+表示在当前版本中新增的行。-表示在当前版本中删除的行。
- 上下文行:
- 输出中会包含一些没有变化的上下文行,以帮助您理解更改的上下文。
示例
假设您在一个名为 example.txt 的文件中进行了以下更改:
Hello, World! # 原始内容
Hello, Git! # 修改后的内容
执行 git diff 后,输出可能如下:
diff --git a/example.txt b/example.txt
index 83db48f..f7351f4 100644
--- a/example.txt
+++ b/example.txt
@@ -1 +1 @@
-Hello, World!
+Hello, Git!
常见选项
git diff --name-only:只显示更改的文件名。git diff --stat:显示简要的统计信息,包括每个文件的更改行数。
图示示例
如果您在工作目录中进行了更改,使用 git diff 可能会看到如下输出:
$ git diff
diff --git a/example.txt b/example.txt
index 83db48f..f7351f4 100644
--- a/example.txt
+++ b/example.txt
@@ -1 +1 @@
-Hello, World!
+Hello, Git!
这里的 @@ 行表示变动的上下文,- 和 + 表示删除和添加的内容。
总结
git diff是一个强大的工具,可以帮助您了解代码的变更。- 通过不同的选项,您可以查看不同范围和类型的差异。
- 理解和使用
git diff是掌握 Git 版本控制的重要组成部分。