工作目录下的每一个文件都不外乎这两种状态:已跟踪或未跟踪。
- 已跟踪的文件是指那些被纳入了版本控制的文件,在上一次快照中有它们的记录,在工作一段时间后,它们的状态可能处于未修改,已修改或已放入暂存区。
- 工作目录中除已跟踪文件以外的所有其它文件都属于未跟踪文件,它们既不存在于上次快照的记录中,也没有放入暂存区。
- 初次克隆某个仓库的时候,工作目录中的所有文件都属于已跟踪文件,并处于未修改状态。
git status追踪仓库当前的状态
第一次查看
新建一个文件status.txt。
1
This is to track status.
查看状态
1
2
3
4
5
6
7
8$ git status
On branch master
Untracked files:
(use "git add <file>..." to include in what will be committed)
status.txt
nothing added to commit but untracked files present (use "git add" to track)
Untracked files,未跟踪的文件意味着Git在之前的快照(提交)中没有这些文件。
第二次查看
修改文件
1
2This is to track status.
update file.查看状态
1
2
3
4
5
6
7
8
9$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: status.txt
no changes added to commit (use "git add" and/or "git commit -a")
告诉我们,文件被修改了,但还没有准备提交的修改。
第三次查看
git add
1
$ git add status.txt
查看状态
1
2
3
4
5
6
7$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: status.txt
`
将要被提交的修改包括status.txt,接着,就可以提交了。
第四次想看
git commit
1
$ git commit -m "add update track"
查看状态
1
2
3$ git status
On branch master
nothing to commit, working directory clean
当前没有需要提交的修改。
git diff来分析文件差异
修改文件
1
2
3This is to track status.
update file.
test diff.比较文件
1
2
3
4
5
6
7
8
9
10$ git diff status.txt
diff --git a/status.txt b/status.txt
index d29d238..c6bbd16 100644
--- a/status.txt
+++ b/status.txt
@@ -1,2 +1,3 @@
This is to track status.
-update file.
+update file.
+test diff.
Note:
要查看尚未暂存的文件更新了哪些部分,用git diff。
查看已暂存的将要添加到下次提交里的内容,用git diff –staged。