工作区和版本库之间的关系:
版本库中又主要分为暂存区和当前分支。
所以,现在来复现git提交文件的两个步骤:
1. git add 从工作区将文件添加到暂存区。
2. git commit 将暂存区的所有文件一次性提交到当前分支。
每次提交完,工作区,暂存区,当前分支又是什么状态呢?
工作区:山是山,水是水,还有备份在当前分支。
暂存区:空空如也,什么玩意都被提交到了分支上。
分支:保存了工作区文件的所有版本的历史。
接下来的概念非常重要:Git跟踪的是文件的修改,而非文件本身。
比如说,文件新增了一行,删除了一行,更改了某些字符标点,或者创建和删除整个文件,都算是一个修改。
就像是数学中的逆运算,我对文件实施了一个加法运算,如果想进行版本退回怎么办,那就逆向实施一个减法。
然而最佳的理解方式就是代码实践,给两个简单的对比方案:
随意拿一个文本进行修改:
1.第一次修改-->git add-->第二次修改-->git commit
2.第一次修改-->git add-->第二次修改-->git add-->git commit
文件每次被修改,如果没有add到暂存区,就不能越过暂存区直接提交。