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
参考
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`)