refs/remotes/m/
我们都知道git库的远程跟踪分支,在我们使用git branch -a或者git branch -r的时候都会显示出来。例如在Android的源代码中,例如frameworks/base目录下执行git branch -a,可以看到如下输出:
* (no branch)
remotes/aosp/donut-release
remotes/aosp/donut-release2
remotes/aosp/eclair-passion-release
remotes/aosp/eclair-release
remotes/aosp/eclair-sholes-release
remotes/aosp/eclair-sholes-release2
remotes/aosp/froyo
remotes/aosp/froyo-release
remotes/aosp/gingerbread
remotes/aosp/gingerbread-mr4-release
remotes/aosp/gingerbread-release
remotes/aosp/ics-factoryrom-2-release
remotes/aosp/ics-mr0
remotes/aosp/ics-mr0-release
remotes/aosp/ics-mr1
remotes/aosp/ics-mr1-release
remotes/aosp/ics-plus-aosp
remotes/aosp/jb-dev
remotes/aosp/jb-mr0-release
remotes/aosp/jb-mr1-dev
remotes/aosp/jb-mr1-dev-plus-aosp
remotes/aosp/jb-mr1-release
remotes/aosp/jb-mr1.1-dev
remotes/aosp/jb-mr1.1-release
remotes/aosp/jb-release
remotes/aosp/master
remotes/aosp/tools_r20
remotes/aosp/tools_r21
remotes/aosp/tools_r22
remotes/m/android-4.2.2_r1.2 -> refs/tags/android-4.2.2_r1.2
所有以remotes/aosp/开头的分支都很好理解。就是在真正的远程服务器aosp上的库里,存在着对应的分支。
有一个分支名称看起来很奇怪:remotes/m/android-4.2.2_r1.2
更奇怪的是这个分支的名称后面还有一个箭头,指向另外一个名称。
那么这个remotes/m/android-4.2.2_r1.2 -> refs/tags/android-4.2.2_r1.2到底是什么意思呢?
其实并不神秘,首先看remotes/m/android-4.2.2_r1.2,这个就是一个repo的清单库的分支,也就是当你在执行repo init -U [URL] -b [branch_name]的时候,-b参数后面的分支。如果你repo init的时候,没有指定过-b参数。那么这里就会显示remotes/m/master。
那么这个箭头后面的refs/tags/android-4.2.2_r1.2是什么呢?它就是在清单库里的default.xml里面指定的单个git库的revision值。
需要说明的一点是,这个是repo工具自己添加的一个ref,只是利用了git的机制显示了出来。
那么repo工具添加这个功能有什么用呢?其实就是为了让用户方便的知道自己目前工作在清单库的哪个分支上。当前的清单库的这个分支又引用了当前git库的哪个branch/tag上。
阅读(12336) | 评论(1) | 转发(2) |