git获取用户名 邮箱

2,169 阅读2分钟

git log 查看提交记录

-n (n是一个正整数),查看最近n次的提交信息

--pretty 按指定格式显示日志信息,可选项有:oneline,short,medium,full,fuller,email,raw以及format,默认为medium,可以通过修改配置文件来指定默认的

--author=someonet 查询指定作者的提交记录

--merges 查看所有合并过的提交历史记录

--no-merges 查看所有未被合并过的提交信息

可以依据commit tagName或branchame

选项     说明
%H      提交对象(commit)的完整哈希字串
%h      提交对象的简短哈希字串
%T      树对象(tree)的完整哈希字串
%t      树对象的简短哈希字串
%P      父对象(parent)的完整哈希字串
%p      父对象的简短哈希字串
%an     作者(author)的名字
%ae     作者的电子邮件地址
%ad     作者修订日期(可以用 -date= 选项定制格式)
%ar     作者修订日期,按多久以前的方式显示
%cn     提交者(committer)的名字
%ce     提交者的电子邮件地址
%cd     提交日期
%cr     提交日期,按多久以前的方式显示
%s      提交说明

打印出提交信息

git log -1 --pretty=format:"%an" master  // 作者
git log -1 --pretty=format:"%ae" master // 邮箱
git log -1 --pretty=format:"%s"  // 提交说明
git log -1 --pretty=format:"%an" --no-merges master  // 非合并的作者
git log -1 --pretty=format:"%H"  // 提交hash
git rev-parse HEAD   // 提交hash

--since,--affter 仅显示指定时间之后的提交(不包含当前日期)

--until,--before 仅显示指定时间之前的提交(包含当前日期)

$ git log --before={3,weeks,ago} --after={2010-04-18}

验证是否是merge提交

git log -1 --pretty=format:"%s" // 获取提交说明
/^Merge branch '.*' into 'master'/    // 正则

other

$ git log --pretty=format:"%an %ae %ad %cn %ce %cd %cr %s" --graph
git log --author=gaopo --since="2017-01-01" --no-merges | grep -e 'commit [a-zA-Z0-9]*' | wc -l

参考

参考 blog.csdn.net/boshuzhang/…

shell 获取 git信息

 const LAST_COMMIT_USER = await this.shell(`git log --skip=1 -1 | grep -i author | awk '{print $2}' | xargs`)
const LAST_COMMIT_BRANCH = await this.shell(`git log -1 | grep -i 'merge branch' | awk '{print $3}' | xargs`)