原理结构图
描述
- Workspace:工作区
- Index / Stage:暂存区
- Repository:仓库区(或本地仓库)
- Remote:远程仓库
解释
使用git应该明白一点,什么是本地仓库以及为什么有一个本地仓库,git和svn的区别就在这。
git会把服务端上的仓库完整的
复制到你本地,看清楚是完整的,也就是说:不仅仅是你所在的分支,别人建的分支也会被复制下来
因此通常所做的操作,比如diff,revert,commit等,都是对你本地的仓库进行的,如果要和服务器(远程仓库)同步,就是的pull和push操作
相信很多人看了这张图就明白各个区的含义,不过下面还是按照我的理解做下简单的解释。
1.Workspace 工作区
即正在编辑的文件状态。文件状态为未跟踪(untrack)和已修改(modified)在此区域内。
通过git pull
把远程仓库中
的文件同步到工作区
。
通过git add
把该区域中的文件提交到暂存区
中。
2.Index/Stage 暂存区
保存了下次将提交的文件列表信息。文件状态为已暂存(staged)在此区域内。
通过git commit
把文件提交到本地仓库
中。
3.Repository 本地仓库
本地仓库就是从服务器上复制到本地的一份代码,所做的操作都是对这个仓库发生的。
通过git push
把本地仓库中
的文件推送到远程仓库
中。
4.远程仓库
远程仓库也就是我们所说的服务器端,大家都从这来clone代码,最后大家都需要把本地仓库的变更和这个同步。