比较工作区与暂存区
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/ 是新版本)。
@@ 行提供了变更发生在文件中具体位置的上下文信息。
- 以
+ 开头的行表示新增内容,而以 - 开头的行则表示删除内容。
这个差异对比告诉我们,我们在 greet.js 中添加了三行新内容。
按下 q 键退出差异查看界面。
现在,将这些变更加入暂存区:
git add greet.js
如果你再次运行 git diff,将不会看到任何输出。这是因为默认情况下 git diff 只显示未暂存的变更。要查看已暂存的变更,你需要使用 git diff --staged,我们将在下一步中介绍。
请记住,不带任何参数的 git diff 是将你的工作区与暂存区进行比较。这是在暂存变更前检查工作成果的好方法。