Git学习 - Git的原理
Git的四个区域:
名词解释:
- Workspace: 工作区,就是我们平时放项目代码的地方;
- Index / Stage: 暂存区,用于临时存储你的改动,事实上它只是一个文件,保存即将提交的文件列表的信息;
- Repository:仓库区(版本库),就是安全存放数据的位置,这里有我们提交的所有版本的数据,其中 HEAD 指向最新放入仓库的版本;
- Remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换;
Git的工作流程:
git的工作流程一般是这样的:
- 在工作目录中添加修改文件;
- 将需要进行版本管理的文件 add 到暂存区域;
- 将暂存区域的文件 commit 到 git 仓库;
- 本地的修改 push 到远程仓库,如果失败的话则执行第 5 步;
- git pull 将远程仓库的修改拉取到本地,如果要是有冲突的话需要修改冲突。回到第 3 步
因此,git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(commited);
文件的四种状态:
- Untracked:未跟踪,此文件在文件夹中,但并没有加入到 git 库,不参与版本控制,通过 git add 状态变为 Staged;
- Unmodify:文件已经入库但是并没有修改,即版本库中的文件快照内容与文件夹中完全一致,这种状态的文件有两种去处,如果它被修改则变为 Modified,如果使用 git rm 移出版本库,则成为Untracked文件;
- Modified:文件已经修改,但仅仅是修改,并没有进行其他的操作,这个文件也有两个去处,通过 git add 可进入到暂存Staged状态,使用 git checkout 则丢弃修改,返回到Unmodify状态,这个 git checkout 是从库中取出文件覆盖当前修改;
- Staged:暂存状态,执行 git commit则将修改同步到库中,这时库中的文件和本地的文件又变为一致,文件为 Unmodify 状态;