需要关注git实现机制中的一快就是git的4个区域:工作区域、暂存区、本地仓库、远程仓库。
图1.1
图1.2
工作区
工作区就是我们当前项目目录内,所有修改都是在工作区内进行。
图1.3工作区
暂存区
暂存区(stage)也叫索引区(index),本地文件修改之后,add操作会将修改添加大暂存区,那么本地和暂存区修改保持一致。
图1.4 暂存区
如图1.4所示,stage内是工作区提交的修改。
本地仓库
通过clone或者intit目录之后,本地仓库便建立了,我们所以的修改,都要先提交到本地,是通过暂存区提交的(可以通过工作区直接提交到本地仓库)。
如图1.4所示,通过git commit 即可把stage区域的修改提交到本地仓库。
每一次提交都会形成一个版本号,版本号是SHA-1编码的编号。
远程仓库
远程仓库是放在远程服务器上,虽然说git是一个分布式版本控制系统,但是一般我们worker都会使用同一个远程仓库,这点感觉和svn并没有太大差别,只是remote 挂掉之后,我们每个worker可以互相用对方的repo(修改repo地址即可)。
通过clone可以把远程仓库clone下拉,push操作将本地的仓库版本提交到远程仓库。
本地远程分支和远程分支
如图1.5所示,git本地仓库其实还会分为本地分支、本地远程分支。git fetch拉下来的代码会放到本地远程分支上而不是直接合并到本地分支。
1.5分支图
可以通过git br查看本地远程分支。
git pull origin master = git fetch origin master + git merge origin/master
这个比较重要,一定要引起注意。