文件的三种状态
Git 有三种状态,你的文件可能处于其中之一:已提交(committed)、已修改(modified)和已暂存(staged)。 已提交表示数据已经安全的保存在本地数据库中。 已修改表示修改了文件,但还没保存到数据库中。 已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
- 工作目录:是项目的某个版本提取出来的内容,放在磁盘上供你使用或修改。
- 暂存区域:一般存放在 .git 目录下 index 文件中,保存了下次将提交的文件列表信息,有时候也被称作 “索引”。
- Git 仓库:是 Git 用来保存项目的元数据和对象数据库的地方。 从其它计算机克隆仓库时,拷贝的就是这里的数据。
Git操作基本流程图
基本的 Git 工作流程如下:
1. 在工作目录中修改文件。
2. 暂存文件,将文件的快照放入暂存区域。
3. 提交更新,找到暂存区域的文件,将快照永久性存储到 Git 仓库目录。
如果 Git 目录中保存着的特定版本文件,就属于已提交状态。 如果作了修改并已放入暂存区域,就属于已暂存状态。 如果自上次取出后,作了修改但还没有放到暂存区域,就是已修改状态。
跟踪状态
在工作目录下文件会有两种状态:已跟踪或未跟踪。
- 已跟踪:指那些被纳入了版本控制的文件,在上一次快照中有它们的记录,在工作一段时间后,它们的状态可能处于未修改,已修改或已放入暂存区。
- 未跟踪:工作目录中除已跟踪文件以外的所有其它文件都属于未跟踪文件,它们既不存在于上次快照的记录中,也没有放入暂存区。
我们可以通过下面命令来查看文件处于什么状态:
$ git status
此时,我们添加一个readme.md文件,并运行此命令:
y@DESKTOP-IVDRIN9 MINGW64 ~/Desktop/giys (master)
$ git status
On branch master
Initial commit
Untracked files:
(use "git add <file>..." to include in what will be committed)
readme.md
nothing added to commit but untracked files present (use "git add" to track)
“On branch master”表示使用的是分支“master”,并且我们可以在未跟踪文件中看到“readme.md”。Git不会将新建的文件自动加入跟踪范围内,只有你告诉它需要跟踪哪些文件它才会跟踪。