如何获取当前提交用户信息
这个比较简单,通过 git config user.name 即可:
04318deMacBook-Pro % git config user.name
zhangshixin
git config 保存了很多配置信息,其中常用的有自定义快捷键、用户信息、项目地址、分支信息等:
504318deMacBook-Pro % git config -l
//快捷键 begin >>> 我们可以定义自己的 git 快捷键
alias.st=status
alias.co=checkout
alias.cb=checkout
alias.p=pull
alias.pr=pull
alias.pu=push
alias.cmmit
alias.br=branch
alias.cmmit
alias.undo=reset
alias.rbc=rebase
alias.save=stash
alias.pop=stash
//快捷键 end <<< 我们可以定义自己的 git 快捷键
//用户名称和邮箱 begin >>>
user.name=zhangshixin
user.email=shixin.zhang@xxx
//用户名称和邮箱 end <<<
//项目和分支信息 begin >>>
remote.origin.url=git@gitlab.xxx:android/xxx.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master
branch.Canary.remote=origin
branch.Canary.merge=refs/heads/Canary
//项目和分支信息 end <<<
pull.rebase=true //默认 pull 是 merge 还是 rebase
如何获取当前分支
为了减少提示频率,最好只检测核心的分支的提交(包括 mergemit)。如何获取当前分支呢?有一个简单的方式:
git symbolic-ref --short HEAD
这句命令主要包括两个关键字:symbolic-ref 和 HEAD。
symbolic-ref 可以读取、修改和删除符号引用。
什么是符号引用呢?它表示一个以 refs 开头的文件(比如 refs/heads/develop),这个文件保存着本地每个分支当前所处mit。
我们可以打开 git 项目的 .git 文件夹,在其中的 refs/heads 文件夹中会保存各个分支当前所指向的mit:
HEAD 指的是 .git/HEAD,就是一个文件,保存着当前指向的符号引用:
因此 git symbolic-ref --short HEAD 的含义就是读取 .git/HEAD 文件的内容,我这里就是 refs/heads/develop 文件,因此就得出当前分支是 develop 分支。









