git工具的所有命令都是以git开头,就像linux中的命令那样,git是主命令,后面需要跟上其它副命令。
首先学习的是查看状态的命令。
假设我们git init后的目录是没文件的。
查看后,打印出下面三句信息
第一句表明我们现在在主分支(分支后面再学习)
第二句表明git还没提交过文件到本地仓库
第三局表明没有可提交的信息,建议我们自己创建或者拷贝一份文件后再使用git add命令把文件加入到暂存区域,这样才能提交。
接下来我们创建了两个文件
继续使用git status来查看一下,仓库状态
前两条打印信息和上面的一样
第三句给出了提示,有两个标红的文件没放到暂存区域,建议我们使用git add 文件名 加入到暂存区域,这样就能提交了。
第四句也是提示,有没增加的提交,而且文件也每被跟踪上。
接下来按照建议,对文件进行添加
先提交一个文件到暂存区域
可以看到,提交的暂存区域的文件Makefile,表明已经暂存区的文件已经可以被提交到本地库了。
当然这里对暂存区的还有一个提示,表示可以使用下面这个命令,把暂存区域的文件,恢复删除了。
git rm --cached <file>...
我们使用一下这个命令,把暂存区域的文件删除了。
注:这个"git rm --cached <file>..."命令只是删除暂存区域的文件,和本地区域没关系。
对多个文件同时添加到暂存区域
提交暂存区域到本地仓库
暂存区域有两个文件,我们先尝试提交一个到本地库
git commit Makefile
弹出下面这个窗口,这个也是VIM的文本编辑器。
这里给出了一些提示,比如#开头的行都是会被忽略的。
比如我们这里直接:q 退出vim编辑器
继续查看一下状态,可以看到,如果我们不增加更改记录,默认是不会把暂存区域提交到本地仓库的。
这次我们继续,提交,并对锁提交的内容增加一些注释。之后保存退出。
可以看到这次的提交就成功了。
第一行,我们现在在主分支,第一次提交默认就是(root-commit),后面的28ea93d是这个文件的哈希校验和,再后面我圈起来额就是我们写的注释了。
第二行,提交的文件数量,这个文件行数为17行,+表示增加
第三行,表示提交的Makefile这个文件的权限信息。
继续查看。
经过这次的提交之后,已经没有了,"Initial commit"提示了,因为现在已经不是没提交过的状态,本地库已经有文件存在了。
当然我们上次只提交了一个Makefile文件,virt_net.c文件还在暂存库中,这次我们把virt_net.c文件也提交到本地仓库。
加好注释,这是一个虚拟网卡驱动的框架。
接下来我们看一下所有文件都已经提交到本地库只后的状态。
没东西可提交,工作目录也是干净的。
当然,平时更多的时候我们就修改某个文件的内容。
假设我们修改来vrit_net.c中的内容了。
查看一下此时的状态
此时的状态是文件被修修改,git提示我们有两种使用,
一种是git add,表示需要更新暂存区后,再提交。
另一种是git checkout -- ,表示要撤销工作目录的操作,这个命令后面再分析。
这里还要说的是,对于修改的文件,可以使用git add 把修改的文件提交到暂存区之后使用git commit -a,提交到本地仓库。
或者直接使用git commit -a,直接更新缓存区并更新本地仓库
继续添加更改后的文件到暂存区域
这里提示我们使用git reset HEAD 来做ben本地hui'回滚,这里暂时不说,后面章节再继续分析。
继续把暂存区提交到本地仓库。
这里我们对git commit 加了一个参数 -m,表示不用进入到vim模式,进行更改记录的添加。而是直接在和后面加入字符串来添加需改记录。
总结:
- git status 查看工作区域。暂存区域状态
- git add [file name] 将工作区的新建或修改添加到暂存区
- got commit -m "commit message" [file name] 将暂存区的内容提交到本地库