Node.jsからgitコマンドを実行してコミットログなどを取得する



前回はnode.jsからシェルコマンドを実行する方法を紹介しました。
tkybpp.hatenablog.com

これを利用することで、gitのログなども取得できるようになります。
git logコマンドを実行して最新のコミットIDと日付を取得してみます。

const execSync = require('child_process').execSync;
const cmd = 'git log -n 1 --format=%H,%cd';
const result = execSync(cmd).toString().split(',');
const commitID = result[0];
const commitDate = new Date(result[1]);

console.log(commitID);
console.log(commitDate);
$ node test.js
e12e8a92d3469ac3d9cfeeg0cbxb2c2b3aa7d441
Sun Apr 24 2016 09:34:58 GMT+0100 (CET)

今回は最新の1つのみを取得しましたが、git logのオプションは他にもあります。
formatも自由に記述できるので、使いこなせると便利かもしれません。
Git - git-log Documentation


エンジニアのためのGitの教科書 実践で使える!バージョン管理とチーム開発手法

エンジニアのためのGitの教科書 実践で使える!バージョン管理とチーム開発手法