比较工作目录和暂存区
git diff
最基本的用途是查看工作目录中尚未暂存的更改。让我们来探索一下。
首先,我们对 greet.js
文件做一些修改:
echo "function farewell(name) {" >> greet.js
echo " return 'Goodbye, ' + name + '!';" >> greet.js
echo "}" >> greet.js
现在,我们使用 git diff
来查看这些更改:
git diff
你应该会看到类似以下的输出:
diff --git a/greet.js b/greet.js
index 95f5574..a3641f6 100644
--- a/greet.js
+++ b/greet.js
@@ -1,3 +1,7 @@
function greet(name) {
return 'Hello, ' + name + '!';
}
+function farewell(name) {
+ return 'Goodbye, ' + name + '!';
+}
让我们分解一下这个输出:
- 第一行显示了正在比较的文件。
+++
和 ---
行显示了正在比较的文件版本(a/ 是原始版本,b/ 是新版本)。
@@
行提供了更改在文件中的位置上下文。
- 以
+
开头的行表示添加的内容,而 -
则表示删除的内容。
这个 diff 显示我们在 greet.js
中添加了三行新内容。
按 q
退出 diff 视图。
现在,让我们暂存这些更改:
git add greet.js
如果你再次运行 git diff
,你将看不到任何输出。这是因为默认情况下,git diff
只显示未暂存的更改。要查看已暂存的更改,你需要使用 git diff --staged
,我们将在下一步中介绍。
记住,不带任何参数的 git diff
会比较你的工作目录和暂存区。这是在暂存更改之前审查更改的好方法。