接触Git远程仓库很久了,一直对某些概念模模糊糊,平时也没有很多用到,借此机会彻底弄懂
1.远程仓库与本地仓库的对应关系
说到对应关系,是指在多仓库的环境下,我理解这一对应关系的来源是repo的manifests文件例如:
<manifest>
<remote name="middleware/reponame"
fetch="http://netaddress"
review="http://review_netaddress"/>
<project name="LAS/LAS_LTB/GIT/middleware/reponame"
path="code"
remote="middleware/reponame"
revision="master"
sync-c="false"/>
<project name="LAS/LAS_LTB/GIT/middleware/reponame/src"
path="code/src"
remote="middleware/reponame"
revision="dev"
sync-c="false"/>
<include name="LASLABLinuxxxx.xml"/>
</manifest>
这是一个很简单的代码仓结构,remote实际上不是一个远程仓库,而是一个远程服务器,地址前缀是fetch
而两个project代表两个仓库,project name,path,revision代表remote服务器的project name仓的revision分支对应到本地code仓库,而两个远程仓库的URL分别是http://netaddress/LAS/LAS_LTB/GIT/middleware/reponame与http://netaddress/LAS/LAS_LTB/GIT/middleware/reponame/src,所以基本关系也是远程仓库对应