Git之理论基础
Git工作区域
Git
本地有三个工作区域:工作目录(Working Directory)、暂存区(Stage/Index)、资源库(Repository或Git Directory)。如果在加上远程的git仓库(Remote Directory)就可以分为四个工作区域。文件在这四个区域之间的转换关系如下:
- Workspace:工作区,就是平时存放代码的地方。
- Stage(Index):暂存区,用于临时存放你的改动。
- Repository:仓库(本地仓库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本。
- Remote:远程仓库,托管代码的服务器。
Git工作流程
git的一般工作流程是这样的:
- 在工作目录下添加或修改文件。[已修改(modified)]
- 将需要进行版本管理的文件放入暂存区域。[已暂存(staged)]
- 将暂存区域的文件提交到git仓库。[已提交(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
状态. 执行git reset HEAD filename
取消暂存, 文件状态为Modified