前言
Git 教程(一)--Git简介及操作流程
Git 教程(二)--Git文件操作
Git 教程(三)--远程仓库
Git 教程(四)--分支原理
Git 教程(五)--远程分支
文件操作
查看文件状态
在上一篇的基础上,我们使用git status命令,查看文件处于的状态。

可以看到上次提交的文件并没有做出任何更改,以及没有出现未被跟踪(加入缓存区的)文件。
现在,我们新建一个文件,写入自己想写入的内容,输入git status查看状态。

如图所示,git status检测到了一个未被跟踪的文件,需要使用git add得到跟踪,好,我们继续,按照它说的,使用git add使文件得到跟踪,

如图所示,我们的test.txt文件得到跟踪,已经做好提交到仓库的准备,如果说我们在git add过后对文件做出了更改或者增加内容等做法之后,可以使用git命令查看到。
文件内容更改
我们在test.txt里面新添加一句话,并使用git status查看状态:

出现了Changes not staged for commit这一句话,表明了已经跟踪的文件发生了变化,但是还没有被跟踪到,要缓存更新,需要运行git add命令,即是说,你每做出一次更改,那么都得把发生变化的文件使用git add提交到缓存区中,这样才能提交到git 仓库,如果说你并没有把更改的内容提交到缓存区且直接使用了git commit,那么你提交到仓库的文件只有上次提交到缓存区的内容而没有这次修改的。
如果说使用git status的命令的输出让你觉得不够详细,那么可以使用git diff使其能够看出对文件做出了哪些更改(这些更改是没有提交到缓存区里面的更改,如果已经使用了git add命令,那么使用git diff --cached(git diff --staged)命令才能查看到具体不同)。


如果说你想跳过git add直接commit到仓库中,可以使用git commit -a,但是这样对文件的把控就没那么强了。
在实际开发中,我们经常想看到前几次提交了啥,或者说想直接回退到某次提交,那么git 能够很好的实现你的需求,我们把test.txt多提交几次,然后使用git log命令,可以查看提交的历史和每次提交的内容更改。

如图所示,我一共做了三次提交,分别是一句话,hhh,xxxx。我们使用git log进行一个打印,

可以查看到进行了三次提交,如果觉得每次提交的内容不够详细,那么可以使用git log -p进行查看每次的详细更改,如果p后面加上一个数字(git log -p -3)可以查看最近几次(3次)的提交,如果你想看到每次提交的简略的统计信息,你可以使用 git log --stat命令。



那么如果你对最近一次提交不满意,怎么回退到上次提交或者以前的提交呢,那么得使用git reset --hard +历史版本的id(commit后面的一段hash码)命令。


文件移除
移除文件分为两种情况,一种是直接从git仓库,缓存区,工作目录中全部删除,另外一种就是从git仓库,缓存区中删除,但是依旧保留在工作目录中。
1.保留在工作目录中:git rm --cached,这样的话文件将会出现在Untracked files里面,因为他只存在与工作目录中。

2.直接从工作目录中删除:git rm,为了这个命令的展示,我又将m.txt提交到了仓库中。

如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f,或者先commit再删除。
小结:
到此,文件的大多数的操作都已经讲解到了,如果还有什么不明白的可以留言,待续........
网友评论