首先对于Git版本控制系统有一点需要明确的就是,Git跟踪管理的是修改,并非是文件,这也是Git比着其他版本控制系统优秀的地方所在
那什么又是修改呢?比如说你新增了一行,这就是一个修改,删除了一行,这也是一个修改,更改了某些字符,也是一个修改,甚至创建了一个文件也算是修改
下面就开始介绍为什么Git跟踪管理的是修改,并非是文件,还是先通过实际操作最直观:
比如说我们还是操作readme.txt文件,在这里我们还是增加一行内容
Git is a distributed version control system.
Git is free software distributed under the GPL.
Git has a mutable index called stage.
Git tracks changes
.
然后,再修改readme.txt文件:
Git is a distributed version control system.
Git is free software distributed under the GPL.
Git has a mutable index called stage.
Git tracks changes of files.
提交并查看状态(在这里有一点提示在我对工作区的readme.txt文件进行了二次修改之后并没有直接使用git add而是直接使用了git commit命令):
在这有一个有意思的东西出现了,第二次的修改并没有被提交
回过头来看看我们之前的操作,第一次对readme.txt文件修改之后我们使用git add readme.txt命令,咱们都知道使用git add命令是将工作区中你指定的某一个文件修改提交到暂存区(stage),第二次对readme.txt文件进行修改之后我们直接使用git commit命令,回顾一下关于git commit命令,他是将暂存区里面的所有文件修改一次性提交到当前分支里面,所以我们进行进行的第二次对readme.txt的文件修改并没有被提交到暂存区(stage),git
commit命令只负责把暂存区的提交了,所以第一次被修改的提交了,第二次修改的并没有被提交
下面在使用一个新的命令 git diff :
git diff 是工作区和暂存区的比较
git diff --cached 是暂存区和分之的比较
提交之后使用 git diff HEAD -- readme.txt 查看一下工作区和版本库里面最新版本的区别:
可以看到第二次修改确实没有被提交