Git 关于工作区、暂存区、本地库、远程库

一、Git本地有四个工作区域 分别为:

Workspace(工作区):存放项目代码的的文件夹目录
Index / Stage(暂存区): 用于存储工作区中添加上来的变更(增删改),操作时,使用git add .会将本地所有新增、变更、删除过的文件的情况存入暂存区中。
Repository(本地库: 用于存储本地工作区和暂存区提交上来的变更(新增、修改、删除)过的文件的地方。操作时,使用git commit –m “本次操作描述” 可以将添加到暂存区的修改的文件提交到本地仓库中,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本
Remote(远程库: 托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换。由于不能将主项目放到某一个人的本地电脑上,这时就需要有一个地方存储主项目(master主干分支),这个地方就是我们搭建在服务器上的git远程仓库,也就是在功能开始开发前,每个人要下载项目到本地的地方。操作时,使用git push origin 分支名称,将本次仓库存储的当前分支的修改推送至远程仓库中的对应分支中。

二、工作流程

git的工作流程一般是这样的:
1、在工作目录中添加、修改文件;
2、将需要进行版本管理的文件放入暂存区域;
3、将暂存区域的文件提交到git仓库。
因此,git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)

三、文件的四种状态

文件的四种状态:
GIT不关心文件两个版本之间的具体差别,而是关心文件的整体是否有改变,若文件被改变,在添加提交时就生成文件新版本的快照,而判断文件整体是否改变的方法就是用SHA-1算法计算文件

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

新建文件--->Untracked
使用add命令将新建的文件加入到暂存区--->Staged
使用commit命令将暂存区的文件提交到本地仓库--->Unmodified
如果对Unmodified状态的文件进行修改---> modified
如果对Unmodified状态的文件进行remove操作--->Untracked

你可能感兴趣的:(git,github)