如何检查 Git 储藏区是否为空

GitGitBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在这个实验中,你将学习如何检查 Git 储藏区(stash)是否为空。我们将探讨不同的方法来检查和验证你的储藏区内容。

你将首先使用 git stash show 命令来检查储藏区中的更改,包括查看摘要和详细的差异(diff)。然后,你将学习如何使用 git stash list 来验证储藏区的存在和内容。最后,你将使用非空的储藏区来测试这些命令,以巩固你的理解。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/BasicOperationsGroup(["Basic Operations"]) git(("Git")) -.-> git/DataManagementGroup(["Data Management"]) git/BasicOperationsGroup -.-> git/status("Check Status") git/BasicOperationsGroup -.-> git/diff("Compare Changes") git/DataManagementGroup -.-> git/stash("Save Changes Temporarily") subgraph Lab Skills git/status -.-> lab-560106{{"如何检查 Git 储藏区是否为空"}} git/diff -.-> lab-560106{{"如何检查 Git 储藏区是否为空"}} git/stash -.-> lab-560106{{"如何检查 Git 储藏区是否为空"}} end

运行 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 showgit 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),从而能够看到具体添加、修改或删除的行。这个命令是一个非常有用的工具,能让你在不应用储藏区的情况下快速了解其内容。