如何检查文件是否被 Git 跟踪

GitGitBeginner
立即练习

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

简介

在这个实验中,你将学习如何检查一个文件是否被 Git 跟踪。我们将探讨两个重要的 Git 命令:git ls-filesgit status

你将首先使用 git ls-files 列出你的仓库中当前被 Git 跟踪的所有文件。然后,你将使用 git status 来验证跟踪状态,并了解当所有更改都已提交时,Git 如何报告你的工作目录的状态。最后,你将测试 Git 如何处理未跟踪的文件。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/BasicOperationsGroup(["Basic Operations"]) git(("Git")) -.-> git/BranchManagementGroup(["Branch Management"]) git/BasicOperationsGroup -.-> git/add("Stage Files") git/BasicOperationsGroup -.-> git/status("Check Status") git/BranchManagementGroup -.-> git/log("Show Commits") subgraph Lab Skills git/add -.-> lab-560032{{"如何检查文件是否被 Git 跟踪"}} git/status -.-> lab-560032{{"如何检查文件是否被 Git 跟踪"}} git/log -.-> lab-560032{{"如何检查文件是否被 Git 跟踪"}} end

运行 git ls-files 检查文件

在这一步中,你将使用 git ls-files 命令来查看 Git 当前在你的仓库中跟踪哪些文件。这个命令有助于快速了解构成项目历史的文件。

首先,确保你位于 my-time-machine 目录中。如果你不在该目录,请使用 cd 命令导航到该目录:

cd ~/project/my-time-machine

现在,运行 git ls-files 命令:

git ls-files

由于你在前面的步骤中已经创建并提交了 message.txt 文件,你应该会在输出中看到该文件的名称:

message.txt

git ls-files 命令会列出你的仓库中当前被 Git 跟踪的所有文件。这些文件是 Git 正在积极监控更改并包含在提交中的文件。

了解哪些文件被跟踪很重要,因为 Git 仅管理被跟踪文件的历史记录。在你进行提交时,任何未被跟踪的文件都将被 Git 忽略。这使你能够控制哪些内容包含在项目的版本历史中。

在接下来的步骤中,我们将探讨 Git 如何处理尚未被跟踪的文件。

使用 git status 验证跟踪状态

在上一步中,我们使用 git ls-files 查看了 message.txt 是一个被跟踪的文件。现在,让我们再次使用 git status 命令,来看看当所有更改都已提交时,Git 如何报告我们仓库的状态。

确保你仍然位于 ~/project/my-time-machine 目录中。

运行 git status 命令:

git status

你应该会看到类似以下的输出:

On branch master
nothing to commit, working tree clean

这个输出告诉了我们一些重要信息:

  • "On branch master":我们仍然处于项目的主分支上。
  • "nothing to commit, working tree clean":这是关键部分。它意味着我们的工作目录中没有需要提交的更改。Git 认为文件的当前状态与最后一次提交的状态相匹配。

当你完成了一系列更改并提交后,这就是仓库的理想状态。它表明你的工作目录是“干净的”,并且与最新的提交保持同步。

将此输出与我们在创建 message.txt 并提交之前看到的 git status 输出进行比较,你可以看到 Git 的状态消息是如何变化以反映文件和提交的状态的。

在下一步中,我们将引入一个新文件,以查看当存在未跟踪的文件时,Git 的状态会如何变化。

测试未跟踪的文件

在这一步中,你将在 my-time-machine 目录中创建一个新文件,并查看 Git 的状态如何变化以反映存在未跟踪的文件。

确保你位于 ~/project/my-time-machine 目录中。

使用 echo 命令创建一个名为 notes.txt 的新文件:

echo "Some random notes" > notes.txt

此命令创建一个名为 notes.txt 的新文件,并将文本 "Some random notes" 写入其中。

现在,再次使用 git status 检查仓库的状态:

git status

你应该会看到类似以下的输出:

On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        notes.txt

nothing added to commit but untracked files present (use "git add" to track)

注意 "Untracked files:" 部分。Git 已经检测到新文件 notes.txt,但告知你该文件未被跟踪。这是因为你还没有告诉 Git 将此文件包含在仓库的历史记录中。

这是 Git 中的一个关键概念:你必须使用 git add 命令明确告诉 Git 你想要跟踪哪些文件。这可以防止 Git 自动包含目录中的每个文件,因为这些文件可能包括临时文件、构建产物或你不希望包含在项目历史记录中的个人笔记。

在下一个实验中,你将学习如何将这个新文件添加到暂存区并提交它,使其成为仓库中被跟踪的文件。

总结

在这个实验中,你学习了如何检查文件是否被 Git 跟踪。你使用 git ls-files 命令列出了仓库中当前被跟踪的所有文件,确认了 message.txt 是被跟踪的文件。

然后,你使用 git status 命令验证了仓库的状态。输出 "nothing to commit, working tree clean" 表明所有更改都已提交,工作目录中没有未跟踪的文件或待处理的更改。这加深了你对 Git 如何报告被跟踪文件状态的理解。