1.当修改文件发现错误时,需要恢复到修改前的状态。
每一次修改最后都要提交一个版本,当后续修改发现问题时,可以恢复到修改前的版本。
2.文件按阶段保存在三个不同区(工作区、暂存区、版本库)
工作区存储的是正在修改的内容。
版本库存储了历次修改的不同版本。修改完成后形成一个新的版本,提交到版本库中。如果每个文件修改后都形成一个新版本,则版本会太多,难以管理。一般会在项目中修改了多个文件,完成一次开发迭代时,才提交一个新版本。
在提交版本前,对文件的修改,可以保存到暂存区(git add)。工作区的文件修改后,如果发现项目出问题了,想恢复到修改前的状态,可以从暂存区中取出来覆盖工作区的文件(git checkout)。如果发现暂存区的内容也有问题,则从版本库的某一版本来复原暂存区(git reset)。
暂存区是一个桥梁,连接着工作区和版本。提交版本时,从工作区经暂存区,再到版本库。内容回滚时,先从暂存区恢复工作区的文件,如果不能解决问题,则从版本库中选择一个合适版本,恢复到暂存区中,再从暂存区去恢复工作区的内容。