有人可以通过提供示例来解释两者之间的区别吗?''''
只有在文件受版本控制时,该文件才会被跟踪。
以一个C++项目为小例子,它将会有:
Makefile
main.cpp
interface.hpp
worker.cpp
作为源代码文件,您需要将这些文件放入版本控制中。在构建过程中,
main.o
worker.o
myapp
生成的文件不应该被纳入版本控制,因此在这些文件上不要使用 git add
命令。它们会保持为未跟踪状态,因为 Git 不关心它们发生了什么变化。除非你将它们添加到 .gitignore
文件中(默认情况下,.o 文件是被忽略的),否则 Git 不知道你是想将其添加还是忽略,所以在使用 git status
命令时会显示这些文件,直到你做出决定。
一个文件是否被跟踪还取决于版本 -- 假设你自动生成了 worker.cpp
并在后续的版本中将其从版本控制中删除。在该版本中,该文件现在是未跟踪状态的。当你回到仍然包含该文件的版本时,Git 将拒绝在检出时覆盖该文件。
请注意,git不会忽略已经在规则被添加到.gitignore
文件之前被跟踪的文件。 在这种情况下,该文件必须被取消跟踪,通常使用git rm --cached filename
.gitignore
文件:我已经相应地编辑了答案。 - VonC被 Git 处理(版本控制)的文件是已添加并提交的跟踪文件。未跟踪文件通常是您不希望受到控制的文件,例如由编译器生成的文件。
您可以将未跟踪文件添加到 .gitignore
文件中,以便 Git 不会询问您是否要跟踪它们。
请记住,工作目录中的每个文件都可以处于以下两种状态之一:已跟踪或未跟踪。简而言之,已跟踪的文件是Git知道的文件。未跟踪的文件是其他所有文件 - 工作目录中上次快照中没有的文件,也不在暂存区中。已跟踪的文件是上次快照中存在的文件;它们可以是未修改的,修改过的或者已暂存的。
已追踪的文件:
已追踪的文件是 Git 知道并主动管理的文件。这些文件是通过使用 git add 命令添加到 Git 仓库中,并使用 git commit 进行提交的。Git 跟踪这些文件的变化,允许您查看变更历史,切换不同版本(提交),并通过推送到远程仓库与他人共享这些变更。
未追踪的文件:
未追踪的文件是 Git 目前未管理的文件。通常,这些文件存在于您的仓库的工作目录中,但尚未使用 git add 添加到 Git 仓库中。未追踪的文件不会包含在提交中,并且 Git 不会保留对这些文件的变更历史,直到您明确使用 git add 将它们添加到仓库中。
您可以使用 git status 命令查看仓库中已追踪和未追踪文件的列表。已追踪的文件将显示在“将要提交的更改”部分下,而未追踪的文件将显示在“未追踪的文件”部分下。