Git查看暂存区修改
1. 什么是暂存区
在Git中,暂存区(Staging Area)是一个缓存区域,用于存放待提交的文件修改。在执行git add
命令后,文件的修改会被添加到暂存区,待提交时,再将暂存区的内容提交到版本库。
暂存区有以下特点:
- 可以暂存部分文件的修改,而不是全部文件的修改;
- 可以多次添加修改到暂存区,形成多个提交。
2. 查看暂存区的修改
Git提供了多个命令用于查看暂存区的修改。下面介绍几个常用的命令及其用法。
2.1 git diff
git diff
命令用于查看工作区和暂存区之间的差异。它会显示出尚未添加到暂存区的修改。
运行命令git diff
可以看到工作区和暂存区的差异,例如:
$ git diff
diff --git a/file.txt b/file.txt
index 1234567..abcdefg 100644
--- a/file.txt
+++ b/file.txt
@@ -1,3 +1,3 @@
This is the old content.
-This is a new line added in the working directory.
+This is a modified line in the working directory.
上面的输出表示file.txt
文件在工作区和暂存区之间有差异。可以看到,第3行在暂存区被删除(-),第4行在暂存区被添加(+)。
2.2 git diff --cached
git diff --cached
命令用于查看暂存区和最后一次提交之间的差异。它会显示出已经添加到暂存区但尚未提交的修改。
运行命令git diff --cached
可以查看暂存区和最后一次提交之间的差异,例如:
$ git diff --cached
diff --git a/file.txt b/file.txt
index 1234567..89abcdef 100644
--- a/file.txt
+++ b/file.txt
@@ -1,2 +1,2 @@
This is the old content.
-This is a new line added in the working directory.
+This is a modified line in the staging area.
上面的输出表示file.txt
文件在暂存区和最后一次提交之间有差异。可以看到,第3行在最后一次提交(暂存区)中被删除(-),第4行在最后一次提交(暂存区)中被修改(+)。
2.3 git diff HEAD
git diff HEAD
命令用于查看工作区和最后一次提交之间的差异。它会显示出尚未暂存和尚未提交的修改。
运行命令git diff HEAD
可以查看工作区和最后一次提交之间的差异,例如:
$ git diff HEAD
diff --git a/file.txt b/file.txt
index 1234567..abcdefg 100644
--- a/file.txt
+++ b/file.txt
@@ -1,3 +1,3 @@
This is the old content.
-This is a new line added in the working directory.
+This is a modified line in the working directory.
This line exists only in the working directory.
上面的输出表示file.txt
文件在工作区和最后一次提交之间有差异。可以看到,第3行在最后一次提交中被删除(-),第4行在最后一次提交中被修改(+),第5行仅存在于工作区。
3. 示例:查看暂存区修改
假设我们有一个文件example.txt
,内容如下:
Hello, world!
This is an example file.
我们首先对该文件进行修改,将内容改为:
Hello, Git!
This is a modified example file.
接下来,我们执行以下命令:
$ git add example.txt
$ git diff
$ git diff --cached
第1行将修改添加到暂存区,第2行查看工作区和暂存区之间的差异,第3行查看暂存区和最后一次提交之间的差异。
输出示例:
diff --git a/example.txt b/example.txt
index 1234567..abcdefg 100644
--- a/example.txt
+++ b/example.txt
@@ -1,2 +1,2 @@
-Hello, world!
+Hello, Git!
This is an example file.
diff --git a/example.txt b/example.txt
index 1234567..abcdefg 100644
--- a/example.txt
+++ b/example.txt
@@ -1,2 +1,2 @@
-Hello, world!
+Hello, Git!
This is an example file.
可以看到,两个命令的输出相同,example.txt
文件在暂存区和最后一次提交之间有差异,即第1行中的world
被修改为Git
。
4. 总结
通过使用git diff
、git diff --cached
和git diff HEAD
命令,我们可以方便地查看工作区和暂存区之间、暂存区和最后一次提交之间、工作区和最后一次提交之间的差异。这些命令对于我们了解和确认修改的内容非常有帮助,也方便我们在提交前进行仔细的审查和修改。