文件状态
你工作目录下的每一个文件只有两种状态:tracked 或 untracked
tracked
- 已跟踪 tracked 的文件是指那些被纳入了版本控制的文件
- 在上一次快照中有它们的记录,在工作一段时间后, 它们的状态可能是未修改unmodified、已修改modified 或已放入暂存区staged
- 简单来说,已跟踪 tracked 的文件就是 Git 知道的文件
untracked
- 工作目录中除 tracked 文件外的其它所有文件都属于 untracked 文件
- 它们既不存在于上次快照的记录中,也没有被放入暂存区
- 初次 clone 某个仓库的时候,工作目录中的所有文件都属于 tracked 文件,并处于 unmodified
- 编辑文件后,Git 将它们标记为 modified 文件。 在工作时,你可以选择性地将这些修改过的文件放入暂存区,然后提交所有已暂存的修改
文件的状态变化周期
检查当前文件状态
可以用 git status
命令查看哪些文件处于什么状态。 如果在克隆仓库后立即使用此命令,会看到类似这样的输出:
git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean
可以获取到的内容
- 所有 tracked 件在上次提交后都未被更改过
- 当前目录下没有出现任何 untracked 的新文件,否则 Git 会在这里列出来
- 还显示了当前所在分支,并告诉你这个分支同远程服务器上对应的分支没有偏离,现在,分支名是“master”,这是默认的分支名
在项目下创建一个新的 README
文件,使用 git status
命令,将看到一个新的 untracked 文件
echo 'My Project' > README
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Untracked files:
(use "git add <file>..." to include in what will be committed)
README
nothing added to commit but untracked files present (use "git add" to track)
可以获取到的内容
-
README
文件出现在Untracked files
下面 - untracked 的文件意味着 Git 在之前的快照(提交)中没有这些文件
如何跟踪
git add 文件名
# 更新目录下所有文件
git add .
后面会再详细讲这个命令
跟踪新文件
使用命令 git add
开始跟踪一个文件。 所以,要跟踪 README
文件,运行:
git add README
此时再运行 git status
命令,会看到 README
文件已被跟踪,并处于 staged
git stat