接下来我们写入缓存,并提交对 hello.php 的所有改动。在首个例子中,我们使用 -m 选项以在命令行中提供提交注释。
$ git add hello.php
$ git status -s
A README
A hello.php
$ $ git commit -m '第一次版本提交'[master (root-commit) d32cf1f] 第一次版本提交
2 files changed, 4 insertions(+)
create mode 100644 README
create mode 100644 hello.php
现在我们已经记录了快照。如果我们再执行 git status:
$ git status# On branch master
nothing to commit (working directory clean)
以上输出说明我们在最近一次提交之后,没有做任何改动,是一个"working directory clean:干净的工作目录"。
如果你没有设置 -m 选项,Git 会尝试为你打开一个编辑器以填写提交信息。 如果 Git 在你对它的配置中找不到相关信息,默认会打开 vim。屏幕会像这样:
# Please enter the commit message for your changes. Lines starting# with '#' will be ignored, and an empty message aborts the commit.# On branch master# Changes to be committed:# (use "git reset HEAD <file>..." to unstage)## modified: hello.php#~~".git/COMMIT_EDITMSG" 9L, 257C
如果你觉得 git add 提交缓存的流程太过繁琐,Git 也允许你用 -a 选项跳过这一步。命令格式如下:
git commit -a
我们先修改 hello.php 文件为以下内容:
<?php
echo 'Linux公社:';
echo 'Linux公社:';?>
再执行以下命令:
git commit -am '修改 hello.php 文件'[master 71ee2cb] 修改 hello.php 文件
1 file changed, 1 insertion(+)
5.git reset HEADgit reset HEAD 命令用于取消已缓存的内容。
我们先改动文件 README 文件,内容如下:
# Runoob Git 测试# Linux公社
hello.php 文件修改为:
<?php
echo 'Linux公社:';
echo 'Linux公社:';
echo 'Linux公社:';?>
现在两个文件修改后,都提交到了缓存区,我们现在要取消其中一个的缓存,操作如下:
$ git status -s
M README
M hello.php
$ git add .
$ git status -s
M README
M hello.pp
$ git reset HEAD -- hello.php Unstaged changes after reset:
M hello.php
$ git status -s
M README
M hello.php
现在你执行 git commit,只会将 README 文件的改动提交,而 hello.php 是没有的。
$ git commit -m '修改'[master f50cfda] 修改
1 file changed, 1 insertion(+)
$ git status -s
M hello.php
可以看到 hello.php 文件的修改并为提交。
这时我们可以使用以下命令将 hello.php 的修改提交:
$ git commit -am '修改 hello.php 文件'[master 760f74d] 修改 hello.php 文件
1 file changed, 1 insertion(+)
$ git statusOn branch master
nothing to commit, working directory clean