查看本地分支的HEAD
【思路】获取本地分支,然后再找到.git目录,然后从refs的heads下面获取本地分支的head
#获取本地分支
localBranch=`git branch | grep \* | awk '{print $2}'`
#获取.git目录
gitDir=`pwd`"/.git"
# 当前分支本地的HEAD
local_branch_head=`cat $gitDir/refs/heads/$localBranch`
# 当前分支远端的HEAD
remote_branch_head=`git rev-parse origin/$localBranch`
【原理】
在.git文件夹下有一个refs的目录,存储指向提交对象的指针,包括:分支、远程仓库和标签等;
- heads/目录:存放的是当前版本库中的分支。每创建一个分支,在heads/目录中就多出一个,以分支名来命名的文件,内容是提交的索引值
- tags/目录:存放的是当前版本库中的标签,目录中一个文件代表了一个标签,文件中包含了标签对象,它包含了一个提交对象的索引,该索引执行一个提交