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

   
Git