虽然之前的文章已经涉及到了git的四大区域的概念,这里集中来整理一下。
Git四大区域
首先看一张图
这张图中一共有四个区域,分别为
- workspace
- index/stage
- repository
- remote
Workspace区域
工作区,就是我们平时存放项目代码的地方,我们的代码工作也是在这里进行
index / Stage区域
暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息
Repository区域
仓库区(或版本库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本
Remote区域
远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换
Git 工作流程
git的工作流程一般是这样的:
- 在工作目录中添加、修改文件;
- 将需要进行版本管理的文件add到暂存区域;
- 将暂存区域的文件commit到git仓库;
- 本地的修改push到远程仓库,如果失败则执行第5步
- git pull将远程仓库的修改拉取到本地,如果有冲突需要修改冲突。回到第三步
因此,git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)
Git文件四种状态
- Untracked: 未跟踪, 此文件在文件夹中,但并没有加入到git库,不参与版本控制, 通过git add 状态变为Staged。
- Unmodify: 文件已经入库且未修改, 即版本库中的文件快照内容与文件夹中完全一致,这种类型的文件有两种去处,如果它被修改, 而变为Modified,如果使用git rm移出版本库, 则成为Untracked文件。
- Modified:文件已修改,仅仅是修改,并没有进行其他的操作,这个文件也有两个去处,通过git add可进入暂存staged状态,使用git checkout 则丢弃修改,返回到unmodify状态, 这个git checkout即从库中取出文件,覆盖当前修改
- Staged:暂存状态,执行git commit则将修改同步到库中,这时库中的文件和本地文件又变为一致,文件为Unmodify状态。