GIT第四讲文件的修改和还原

当我们弄清楚GIT的几种文件状态之后,这一部分的内容就变得简单了,我们通过一个具体的例子来了解一下GIT的修改和修改还原。首先创建一个新的文件夹并且通过git init将其设置为git的工厂,添加一个a.txt的文件,使用git add .将其设置为Staged状态之后通过git commit -m "first"将其添加到git的版本库中。这些操作相信大家已经能够熟练的掌握了。
下一步我们修改一下a.txt文件,执行git add .再次将其提交到Staged状态,此时我们先不进行commit,我们向a.txt中写入一些内容,使用git status看看情况
GIT第四讲文件的修改和还原
文章图片

我们发现a.txt处于两种状态StagedModified,这是因为我们第一次修改进行了add之后它变成了Staged状态,Index对这次操作进行了记录,但此时再次修改了之后,Index发现a.txt的内容和版本库中不一致,所以也将它的状态改为了Modified状态,此时进行commit操作。
GIT第四讲文件的修改和还原
文章图片

我们发现,该文件仅仅只是提交了Staged状态的修改,而Modified状态的文件并没有进行提交,这再次证明了上一节课的内容,只有Staged状态才能commit到版本库中,如果是Modified状态,需要先通过add将其设置为Staged状态(也就是第一讲中所说的暂存区)。此时如果我发现我这次的修改没有意义,希望a.txt能够和版本库中的内容一致,只要使用以下命令即可

git checkout a.txt

查询一下a.txt,我们会发现该文件的内容已经和版本库中一样了。
GIT第四讲文件的修改和还原
文章图片

所以通过checkout可以很方便的让自己的文件同步版本库中的内容,注意使用checkout只能同步modified状态下的内容,此时我们再次对a.txt进行修改,并且通过add进行操作之后,a.txt的文件状态就从Modified变成了Staged状态,我们再来使用checkout看看效果。
GIT第四讲文件的修改和还原
文章图片

【GIT第四讲文件的修改和还原】此时我们发现checkout并不能还原原来的文件内容了(我们将会在下一讲讲解git的三种常用组件,到时候就知道为什么无法还原了)。所以我们得到一个结论checkout命令并不能还原Staged状态的内容,此时可以通过
git reset HEAD a.txt

把该文件从Staged状态设置为Modified状态,也就是将这个文件从暂存区中清除。
GIT第四讲文件的修改和还原
文章图片

之后通过git checkout a.txt就可以把内容还原了。
这节课的内容就到这里了,只要掌握了git的几种状态之后,这个内容非常好理解。下一讲将会讲解git最核心的知识,就是git最常用的三个组件BLOB、Tree、Commit

    推荐阅读