nodejs获取 git日志 git 记录 git log 转换 json格式

最重要的 git log

-1 是本地最新 一个 commit
--date=iso 是时间格式
--pretty=format 是 把git log转换成json格式( 来源: https://gist.github.com/textarcana/1306223)

%H 提交对象(commit)的完整哈希字串
%h 提交对象的简短哈希字串
%an 作者(author)的名字
%ae 作者的电子邮件地址
%ad 作者修订日期
%s 提交说明

perl也是个脚本语言,打印用的~

const shell = require('shelljs')

function getLog () {
  let _cmd = `git log -1 \
  --date=iso --pretty=format:'{"commit": "%h","author": "%aN <%aE>","date": "%ad","message": "%s"},' \
  $@ | \
  perl -pe 'BEGIN{print "["}; END{print "]\n"}' | \
  perl -pe 's/},]/}]/'`
  return new Promise((resolve, reject) => {
    shell.exec(_cmd, (code, stdout, stderr) => {
      if (code) {
        reject(stderr)
      } else {
        resolve(JSON.parse(stdout)[0])
      }
    })
  })
}

async function commit () {
  let _gitLog = await getLog()
  console.log(_gitLog)
}

你可能感兴趣的:(nodejs获取 git日志 git 记录 git log 转换 json格式)