Obtiene el hash del compromiso de git más reciente en Node

Me gustaría get el id / hash de la confirmación más reciente en la twig actual en NodeJS.

En NodeJS, me gustaría get el id / hash más reciente, con respecto a git y commits de eso.

Además de la respuesta de Paulpro puedes usar el exec .

 require('child_process').exec('git rev-parse HEAD', function(err, stdout) { console.log('Last commit hash on this branch is:', stdout); }); 

Solución corta, no se necesita module externo (alternativa síncrona a la respuesta de Edin):

 revision = require('child_process') .execSync('git rev-parse HEAD') .toString().trim() 

y si desea especificar manualmente el directory raíz del proyecto git, use el segundo argumento de execSync para pasar la opción execSync('git rev-parse HEAD', {cwd: __dirname}) , como execSync('git rev-parse HEAD', {cwd: __dirname})

Usando nodegit , con path_to_repo definido como una cadena que contiene la ruta al repository para el que desea get el commit sha. Si desea utilizar el directory desde el que se ejecuta su process, reemplace path_to_repo con process.cwd() :

 var Git = require( 'nodegit' ); Git.Repository.open( path_to_repo ).then( function( repository ) { return repository.getHeadCommit( ); } ).then( function ( commit ) { return commit.sha(); } ).then( function ( hash ) { // use `hash` here } ); 

También puedes usar git-fs (su nombre en npm es git-fs, en Github es node-git).

 Git('path/to/repo') Git.getHead((err, sha) => { console.log('The hash is: ' + sha) }) 

El mismo module puede leer directorys y files del repository.

Si siempre está en una twig específica, puede leer .git/refs/heads/<branch_name> para get fácilmente hash de confirmación.

 const fs = require('fs'); const util = require('util'); util.promisify(fs.readFile)('.git/refs/heads/master').then((hash) => { console.log(hash.toString().trim()); });