一、概念
1、Workspace: 工作区,在电脑本地存放代码文件等的地方
2、Index / Stage: 暂缓区,用于临时存放你的改动
3、Repository: 版本库,就是安全存放数据的位置,这里面有你提交过的所有版本的数据,其中HEAD指向最新放入仓库的版本
4、Remote: 远程版本库(仓库),托管代码的服务器,用于远程数据交换
二、文件状态
下图可以表示各种文件状态之间的关系
1、Untracked: 未跟踪
此文件在文件夹中, 但并没有加入到git库, 不参与版本控制.
通过git add可以将 状态变为Staged
2、 Unmodify:文件已经入库, 未修改
即版本库中的文件快照内容与文件夹中完全一致.
这种类型的文件有两种去处, 如果它被修改, 而变为Modified.如果使用git rm移出版本库, 则成为Untracked文件
3、Modified:文件已经入库,已修改
这个文件也有两个去处, 通过git add可进入暂存staged状态, 使用git checkout 则丢弃修改过,返回到unmodify状态, git checkout即从库中取出文件, 覆盖当前修改
4、Staged:暂存状态
执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态. 执行git reset HEAD filename取消暂存,文件状态为Modified
新建文件—>Untracked
使用add命令将新建的文件加入到暂存区—>Staged
使用commit命令将暂存区的文件提交到本地仓库—>Unmodified
如果对Unmodified状态的文件进行修改—> modified
如果对Unmodified状态的文件进行remove操作—>Untracked
注:文章图片来自于网络,如有侵权请联系我删除