如果我们更改了之前已经被跟踪的main.c
,然后执行git status
$ 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: main.c
main.c会出现在Changes not staged for commit
(已更改但未添加到暂存区)的区域中。这表示处于跟踪状态的文件在工作目录下已经被改变,但尚未添加到暂存区。要想添加到暂存区,需要执行git add
命令。
git add
是一个多功能命令,即可以用来跟踪新文件,也可以用来咱村文件,还可以做一些其他的事情。所以git add
理解成“添加内容到下一次提交”比较妥帖。
我们执行git add把main.c添加到暂存区,然后在执行git status
$ git add main.c
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: main.c
现在,被修改后的main.c已暂存,并将进入到下一个提交中。
如果这个时候对main.c再做一下修改,然后再查看文件状态
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: main.c
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: main.c
此时,main.c同时出现在了已暂存和未暂存的列表中。那么如果执行git commit
,提交的将是你上一次git add
进暂存区的文件。所以,如果对文件做了修改,要及时git add