我在前几个视频中向大家交代过一个结论,即对工作区的修改。以下几个操作都算作对工作区的修改,例如我们在工作区中新增一个文件或者删除一个文件,它们都算作对工作区的修改。我们对已存在的文件进行内容上的修改,例如我们新加了几行代码或者删除了几行代码,修改了一些内容。以上这些操作都算作对工作区进行修改。接下来我要向大家说明一个结论,实际上git追踪管理的并非文件,而是我们的修改。
我们从哪里得到这句话?我们回顾之前与大家讨论的对象库,我们之前提到过对象库中的一个对象,它里面存储的是修改工作区中的内容,由这个结论也可以得到git它管理的是我们的修改,而非整个文件。
我们已经向大家说明此结论。在视频中我们将对之前创建的readme文件进行内容修改。在此过程中我们将向大家介绍几个git常用命令。在当前目录下我们将修改readme,新增一行名为hello word的内容。修改完成后保存退出。我们已经了解在工作区中对readme进行了更改。git向我们提供了一个命令,用于查看当前仓库状态,我们使用的命令是git status。
命令回车后,它用于查看我们上次提交后到现在是否对文件进行过修改。根据它打印出来的内容,我们可以看出这句话的意思是没有将要被提交的暂存区内容,即暂存区里面目前是干净的,没有内容修改。
修改是在工作区中修改的readme文件,因此我们可以使用git status查看当前仓库的状态。
git status只能查看哪个文件变化或者修改了。我们知道具体修改的内容吗?有的同学表示知道,让我打印readme文件。
Hello word是我刚才新增的内容。如果你在日常工作中或者大型项目中新增了很多内容,例如100行代码、200行代码甚至更多,那么你无法准确得出你新增了哪些内容,你肯定会忘记。接下来git提供命令为git diff,它用于显示暂存区和工作区之间的差异。
我们使用git diff后面跟上文件即可readme。这里打印的内容是UNIX通用diff格式,有些同学可能没有见过这种格式。接下来大家将简要介绍,A代表我们改动前称为A,改动前为readme,b代表改动后改动后为readme。
我们先观察第二行,减代表改动前加代表改动后,中间有一个-1,还有一个+1和2,负代表改动,改动前的是readme,1代表第一行内容。下面展示的内容是改动前的第一行内容,加号代表改动后,改动后的第一行开始连续两行的内容结束,这是-1,还有一个+1,2的含义。第一行hello git是改动前的第一行,改动后从hello git开始到第二行结束,第二行是hello word,前面有个加号表示新增内容,我们使用git diff命令可以查看暂存区和工作区之间的差异。
我们在工作区修改完成之后需要先使用add操作git add readme文件。使用git status查看当前状态。回车之后这里给我们换了一个提示,表示我们需要将改变提交至本地仓库并进行commit。
这里为我们打印了一个在暂存区中修改的readme文件。接下来我们需要使用一个commit命令,在杠m后面跟上我们这次的描述,即modify readme文件。回车之后再使用git stasus。这次我们已经提交成功,打印状态是没有什么可提交的内容,工作区是干净的。到此为止我们已经完成了这套流程。这个视频的内容主要跟大家讲了两个命令,一个是git status命令,另一个是git diff命令,大家一定要多用这两个命令。