简介
在这个实验中,你将学习如何检查文件是否已被添加到 Git 索引(也称为暂存区)。我们将探讨索引的概念,以及它在为提交准备更改时所起的作用。
你将使用 git ls-files --stage
命令查看索引的内容,并使用 git status
命令全面了解仓库的状态,包括已暂存和未暂存的更改。最后,你将测试 Git 如何处理尚未添加到索引的文件。
在这个实验中,你将学习如何检查文件是否已被添加到 Git 索引(也称为暂存区)。我们将探讨索引的概念,以及它在为提交准备更改时所起的作用。
你将使用 git ls-files --stage
命令查看索引的内容,并使用 git status
命令全面了解仓库的状态,包括已暂存和未暂存的更改。最后,你将测试 Git 如何处理尚未添加到索引的文件。
git ls-files --stage
在这一步,我们将探索 Git 索引(也称为暂存区)。索引是 Git 中一个至关重要的概念。它就像一个等候区,你可以在提交更改之前在这里对其进行准备。
可以这样理解:当你在工作目录中对文件进行更改时,这些更改不会自动包含在下一次提交中。你首先需要使用 git add
命令将它们添加到索引中。索引保存了你已暂存更改的快照,随时可以进行提交。
要查看当前索引中的内容,我们使用 git ls-files --stage
命令。该命令会列出当前为下一次提交而暂存的文件。
让我们在你的 my-time-machine
目录中尝试一下:
cd ~/project/my-time-machine
git ls-files --stage
由于在这个新仓库中我们还没有将任何文件添加到索引中,你应该看不到任何输出。这表明索引目前为空。
理解索引是掌握 Git 的关键。它让你能够精细控制每次提交的内容,使你可以将相关的更改分组在一起,让提交历史保持清晰和有条理。
git status
验证索引在上一步中,我们使用 git ls-files --stage
查看了索引的内容。另一个有助于我们了解仓库状态(包括索引状态)的命令是 git status
。
git status
命令会提供一个摘要,展示你的工作目录和暂存区相对于上一次提交的状态。它会告诉你哪些文件被修改了、哪些文件已为下一次提交暂存,以及哪些文件未被跟踪。
让我们在 my-time-machine
目录中运行 git status
命令:
cd ~/project/my-time-machine
git status
由于这是一个全新的仓库,我们还没有创建任何文件或进行任何提交,输出应该类似于以下内容:
On branch master
No commits yet
nothing to commit (create/copy files and use "git add" to track)
这个输出确认了没有需要提交的更改,这意味着索引是空的,就像 git ls-files --stage
命令显示的那样。“nothing to commit”消息直接反映了索引的状态。
随着我们在实验中继续进行,开始创建和暂存文件,你将看到 git status
的输出如何变化,以反映索引的内容和工作目录的状态。
在这一步,我们将在工作目录中创建一个新文件,并观察在将其添加到索引之前,Git 是如何识别它的。这将帮助你理解工作目录中的文件和索引中的文件之间的区别。
首先,确保你位于 my-time-machine
目录中:
cd ~/project/my-time-machine
现在,让我们使用 echo
命令创建一个简单的文本文件:
echo "This is a new file." > new_file.txt
此命令创建了一个名为 new_file.txt
的文件,并将文本“This is a new file.”写入其中。
现在,让我们再次使用 git status
检查仓库的状态:
git status
你应该会看到类似于以下的输出:
On branch master
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
new_file.txt
nothing added to commit but untracked files present (use "git add" to track)
注意“Untracked files:”部分。Git 发现 new_file.txt
存在于工作目录中,但尚未被 Git 跟踪。这意味着它不在索引中,也不属于任何提交历史。
这是一个关键概念:Git 只跟踪你使用 git add
明确告知它跟踪的文件。在 Git 仓库的工作目录中创建的任何新文件最初都是“未跟踪的”。
在下一步中,我们将把这个文件添加到索引中,为第一次提交做准备。
在本次实验中,我们学习了如何检查文件是否存在于 Git 索引(也称为暂存区)中。我们使用 git ls-files --stage
命令直接列出了当前为下一次提交而暂存的文件。我们还探究了 git status
命令,该命令提供了仓库状态的全面概述,包括有关已暂存、已修改和未跟踪文件的信息,帮助我们验证索引的内容。