1.当修改文件发现错误时,需要恢复到修改前的状态。
每一次修改最后都要提交一个版本,当后续修改发现问题时,可以恢复到修改前的版本。
2.文件按阶段保存在三个不同区(工作区、暂存区、版本库)
工作区存储的是正在修改的内容。
版本库存储了历次修改的不同版本。修改完成后形成一个新的版本,提交到版本库中。如果每个文件修改后都形成一个新版本,则版本会太多,难以管理。一般会在项目中修改了多个文件,完成一次开发迭代时,才提交一个新版本。
在提交版本前,对文件的修改,可以保存到暂存区(git add)。工作区的文件修改后,如果发现项目出问题了,想恢复到修改前的状态,可以从暂存区中取出来覆盖工作区的文件(git checkout)。如果发现暂存区的内容也有问题,则从版本库的某一版本来复原暂存区(git reset)。
暂存区是一个桥梁,连接着工作区和版本。提交版本时,从工作区经暂存区,再到版本库。内容回滚时,先从暂存区恢复工作区的文件,如果不能解决问题,则从版本库中选择一个合适版本,恢复到暂存区中,再从暂存区去恢复工作区的内容。
3.分支管理
分支用于解决多人协作时遇到的问题。如果a,b,c三个人同时读取了某个版本,依次修改后提交了v1,v2,v3三个版本,则会造成只有c的提交是有效的,a,b提交的内容都不在最新版本中。分支管理可以解决此问题。多人开发时,某人对代码要修改前,必须以主分支的当前版本建子分支,然后在子分支上提交,修改完成后,将分支合并到主分支去。如果a,b,c三人同时要修改代码,则需要从主分支创建三个各自的子分支x,y,z,当a完成了修改后,需将x分支合并到主分支,当b完成修改,同样需要合并y分支到主分支,合并时会冲突,主分支的内容与b读取时有变化,git会标识出变化,用户可以手动处理冲突内容,从而最大程度考虑了a,b的修改。
本文介绍了Git版本控制系统的工作原理,如何在修改文件时进行版本控制,包括工作区、暂存区和版本库的作用,以及如何在遇到错误时恢复到之前的版本或状态。
1437

被折叠的 条评论
为什么被折叠?



