介绍
在这个实验中,你将学习如何检查 Git 储藏区(stash)是否为空。我们将探讨不同的方法来检查和验证你的储藏区内容。
你将首先使用 git stash show 命令来检查储藏区中的更改,包括查看摘要和详细的差异(diff)。然后,你将学习如何使用 git stash list 来验证储藏区的存在和内容。最后,你将使用非空的储藏区来测试这些命令,以巩固你的理解。
运行 git stash show 进行检查
在这一步中,你将学习如何使用 git stash show 命令来检查存储在 Git 储藏区(stash)中的更改。
在检查储藏区之前,你需要先有一个储藏区。让我们创建一个简单的文件并将更改储藏起来。
首先,确保你位于项目目录中:
cd ~/project/my-time-machine
现在,创建一个名为 notes.txt 的新文件并添加一些内容:
echo "Important notes for the future." > notes.txt
检查状态以查看新文件:
git status
你应该会看到 notes.txt 被列为未跟踪的文件。
现在,让我们将这些更改储藏起来。这将保存更改而不提交它们,并清理你的工作目录:
git stash save "Add important notes"
你应该会看到输出,表明更改已保存且工作目录已清理。
现在我们有了一个储藏区,就可以使用 git stash show 来检查其内容。默认情况下,git stash show 会显示最近一次储藏的更改摘要。
运行以下命令:
git stash show
你应该会看到类似于以下的输出:
notes.txt | 1 +
1 file changed, 1 insertion(+)
此输出告诉我们,有一个文件(notes.txt)被更改,并且添加了一行内容。
要查看实际的内容更改(差异,diff),你可以添加 -p 或 --patch 选项:
git stash show -p
这将显示储藏区中更改的差异,类似于 git diff 的工作方式。你应该会看到类似以下的内容:
diff --git a/notes.txt b/notes.txt
new file mode 100644
index 0000000..a1b2c3d
--- /dev/null
+++ b/notes.txt
@@ -0,0 +1 @@
+Important notes for the future.
此输出显示创建了一个新文件 notes.txt,并添加了一行内容 "Important notes for the future."。
git stash show 命令对于快速检查储藏区中包含哪些更改非常有用,而无需应用这些更改。这有助于你决定稍后要应用或丢弃哪个储藏区。
使用 git stash list 进行验证
在这一步中,你将学习如何使用 git stash list 命令查看你创建的所有储藏区(stash)的列表。当你有多个储藏区,并且需要记住每个储藏区包含的内容时,这个命令非常有用。
确保你仍然位于项目目录中:
cd ~/project/my-time-machine
在上一步中,我们创建了一个储藏区。让我们使用 git stash list 来查看它。
运行以下命令:
git stash list
你应该会看到类似于以下的输出:
stash@{0}: On master: Add important notes
让我们来分析一下这个输出:
stash@{0}:这是储藏区的名称。stash表示它是一个储藏区,{0}是该储藏区在列表中的索引。最近的储藏区总是位于索引{0}处。On master:这告诉你创建储藏区时所在的分支。Add important notes:这是我们使用git stash save创建储藏区时提供的消息。如果你没有提供消息,Git 会根据当前提交和更改的文件自动生成一条消息。
如果你有多个储藏区,它们将按索引递增的顺序列出,如 stash@{0}、stash@{1}、stash@{2} 等等。
让我们再创建一个储藏区,看看列表会如何变化。
首先,修改我们在之前的实验中创建的 message.txt 文件:
echo "Adding another line for testing." >> message.txt
现在,将这些新更改储藏起来:
git stash save "Add another line to message"
再次运行 git stash list:
git stash list
现在你应该会看到两个储藏区:
stash@{0}: On master: Add another line to message
stash@{1}: On master: Add important notes
注意,新的储藏区现在位于索引 {0} 处,而之前的储藏区移到了索引 {1} 处。Git 总是将最近的储藏区放在列表顶部,索引为 {0}。
git stash list 命令对于管理多个储藏区至关重要。它能清晰地展示你保存的工作,让你在需要应用或丢弃特定储藏区时能够识别和引用它们。
测试非空暂存区
在这一步中,你将练习对多个储藏区(stash)使用 git stash show 和 git stash list 命令,以加深理解。
确保你位于项目目录中:
cd ~/project/my-time-machine
目前你有两个储藏区。让我们再次列出它们,以便回顾:
git stash list
你应该会看到:
stash@{0}: On master: Add another line to message
stash@{1}: On master: Add important notes
现在,让我们检查第一个储藏区(stash@{0})的内容。你可以在命令中添加储藏区的索引来指定要查看的储藏区:
git stash show stash@{0}
这将显示最近一次储藏的更改摘要,也就是我们向 message.txt 文件添加一行内容的那次储藏。输出应该类似于:
message.txt | 1 +
1 file changed, 1 insertion(+)
要查看这个储藏区的差异(diff),可以使用 -p 选项:
git stash show -p stash@{0}
你应该会看到显示 message.txt 中添加行的差异内容。
现在,让我们检查第二个储藏区(stash@{1})。这是我们创建 notes.txt 文件时的储藏区。
git stash show stash@{1}
输出应该类似于:
notes.txt | 1 +
1 file changed, 1 insertion(+)
要查看这个储藏区的差异:
git stash show -p stash@{1}
这将显示创建 notes.txt 文件的差异内容。
当你保存了多组更改时,能够列出并检查单个储藏区至关重要。这能让你快速找到所需的储藏区,而无需逐个应用它们。
在接下来的实验中,你将学习如何应用和管理这些储藏区。
总结
在本次实验中,你学习了如何使用 git stash show 命令检查 Git 储藏区(stash)的内容。首先,你创建了一个简单的文件,并将更改储藏起来,以便有一个储藏区可供操作。然后,你使用 git stash show 查看了最近一次储藏的更改摘要,包括更改的文件数量以及添加/删除的行数。你还探索了 git stash show 的 -p 或 --patch 选项,以查看储藏区内更改的实际差异(diff),从而能够看到具体添加、修改或删除的行。这个命令是一个非常有用的工具,能让你在不应用储藏区的情况下快速了解其内容。



