检查文件状态的主要工具是git status命令,如果你在clone项目后直接运行这个命令
你可以看到下面的结果
这意味着你又一个干净的工作目录,换一句话说,你的所有tracked文件都没有被更改,Git也没有看到任何untracked文件,这个命令告诉你你在哪个分支上面,并且可以知道你的分支和在服务器上的分支状态是一致的,
默认的分支是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 …” to include in what will be committed)
README
nothing added to commit but untracked files present (use “git add” to track)
可以看到最新的README文件是untracked,Git看到这个文件不再上一个commit里面,Git不会提交这个文件除非你将它加到提交列表里面,这样可以保证你不会讲一些你不想加入到git中的文件提交,比如二进制文件。
跟踪新文件
git add README : 将README加入到跟踪状态
随后再次执行git status 命令,会发现README文件已经被跟踪了,准备提交。
$ git status
On branch master
Your branch is up-to-date with ‘origin/master’.
Changes to be committed:
(use “git reset HEAD …” to unstage)
new file: README
修改一个tracked文件,然后执行git status,可以看到如下结果
$ git status
On branch master
Your branch is up-to-date with ‘origin/master’.
Changes to be committed:
(use “git reset HEAD …” to unstage)
new file: README
Changes not staged for commit:
(use “git add …” to update what will be committed)
(use “git checkout – …” to discard changes in working directory)
modified: CONTRIBUTING.md
修改一个tracked的文件,会使其不在暂存空间里面,要将它加入到暂存空间,可以执行git add命令,暂存空间是文件提交到git的空间,任何不再暂存空间里面的文件都不能加到git里面。
git add命令有很多种用途,
- 将新文件加入到tracked状态
- 将文件加入暂存空间
- 合并冲突文件
将CONTRIBUTING.md文件进行git add命令 会有如下结果
git add CONTRIBUTING.md
$ git status
On branch master
Your branch is up-to-date with ‘origin/master’.
Changes to be committed:
(use “git reset HEAD …” to unstage)
new file: README
modified: CONTRIBUTING.md
当修改了暂存区里面的文件,需要再次执行git add命令,将文件加入到暂存区中。不然运行git commit命令只是将上一次运行git add的结果进行提交。
git status 命令不容易理解,使用git status -s命令可以更加直观的理解文件所处的状态
新文件处于untracked状态会被标记为两个问号??
新文件处于暂存区的被标记为A
新文件被更改后标记为M
通常状态表示有两列组成,左边一列表示暂存区文件的状态,右边一列表示工作目录下的文件状态,右边一列表示暂存区中文件状态。
举例来说README文件在工作目录中被修改,但是没有在暂存区中。
Lib/simplegit.rb文件在暂存区中但是被修改,Rakefile在工作目录下被修改并提交到暂存区,再次被修改,所以被标记为MM
`
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。