git-概念和基本原理图示
核心概念和基本原理
四个区
Workspace: 工作区,程序员平时存放项目代码,干活的地方
Index/Stage: 暂存区,用于临时存放文件改动,事实上只是一个文件,保存即将提交的文件列表信息
Repository: 仓库区(或版本库),安全存放数据的位置(安全指版本受控),有提交的所有版本的数据。其中HEAD指向最新放入仓库的版本
Remote: 远程仓库,托管代码的地方
文件的操作和状态变化
Untracked
未跟踪状态,此文件在文件夹中,尚未参与版本控制.
这种状态通过 git add 状态变为Staged状态
Unmodify
文件已经入库,未修改,即版本库中的文件快照内容与文件夹中完全一致。
这种状态下,文件如果被修改变为Modified;如果使用git rm移出版本库,则返回Untracked状态
Modified
文件已修改,仅仅是修改, 并没有进行其他的操作。
这个状态下如果执行 git add 进入staged状态,如果执行 git checkout (从版本库取出覆盖当前修改)则丢弃修改,返回到unmodify状态
Staged
暂存状态,等待commit
这个状态下,执行 git commit 则将修改同步到库中,这时库中的文件和本地文件又变为一致,文件为Unmodify状态.
执行git reset HEAD filename取消暂存,文件状态为Modified
文件操作,状态,工作区变化
新建文件--->Untracked
使用git add命令将新建的文件加入到暂存区--->Staged
使用commit命令将暂存区的文件提交到本地仓库--->Unmodified
如果对Unmodified状态的文件进行修改---> modified
如果对Unmodified状态的文件进行remove操作--->Untracked