git clone之后究竟发生了什么?
开发者键入git clone后,git会将远端所有的代码和branchs下载到开发者本地。
开始觉得很奇怪,git branch只看到一个master branch。通过git banch -r可以看到其他分支,git banch -r看到的并不是远端服务器的分支。而是本地的远端分支。
git clone后在remote/origin repository区保存一份和此时远端分支一模一样的代码和branchs,而且该区域是不能修改的。
该区域不同于本地仓库。所以本地仓库要想获取其他分支,需要从本地的远端区域拉出另外的分支。而新拉出的分支时存储在local repository区域里,这个区域是可以修改的,也就是git branch看到的那些branchs,git checkout -b master origin/master不是从远端拉出一个branch,而是从本地的远端区域里的。
这样后,git fetch就是更新本地的远端代码区域(remote/origin repository)的数据同服务端的代码保持一致。git pull,就是把remote/origin repository区域中的相应的branch(已更新到服务端最新代码) merge到本地区域(local repository)的branch上。