'daki en son git taahhüdünün özetini al, NodeJS'de mevcut şube hakkında en son işlemin id/hash değerini almak istiyorum.Node
NodeJS'de, en son id/hash'ı gitmek ve bununla ilgili olarak almak istiyorum.
'daki en son git taahhüdünün özetini al, NodeJS'de mevcut şube hakkında en son işlemin id/hash değerini almak istiyorum.Node
NodeJS'de, en son id/hash'ı gitmek ve bununla ilgili olarak almak istiyorum.
cevap.
require('child_process').exec('git rev-parse HEAD', function(err, stdout) {
console.log('Last commit hash on this branch is:', stdout);
});
Bunu seçerek, Paulpro'nun cevabı gibi bir 'path_to_repo' belirtmek zorunda kalmamanızı isterim. – Noah
'u kullanarak, path_to_repo
kullanarak, repo'yu almak istediğiniz repo yolunu içeren bir dizgi olarak tanımlayın. Eğer süreç itibaren çalıştığı dizini kullanmak istiyorsanız, o zaman process.cwd()
ile path_to_repo
değiştirin: Eğer exec
kullanabilirsiniz Paulpro ek olarak
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
});
Sadece makinemde FIY, @ antoine129'dan gelen daha kabul edilen yanıttan yaklaşık 3.2 kat daha hızlıdır. execSync yaklaşık 6.4 ms sürer, nodegit ise sadece 1.8 ms alır – Capaj
Ayrıca git-fs kullanabilirsiniz (NPM üzerine o kişinin adını git-fs ise, Github o düğüm-git bu.)
Git('path/to/repo')
Git.getHead((err, sha) => {
console.log('The hash is: ' + sha)
})
aynı modül repo dizinleri ve dosyaları okuyabilir.
revision = require('child_process')
.execSync('git rev-parse HEAD')
.toString().trim()
ve el git projenin kök dizinini belirtmek istiyorsanız, geçmek execSync
ikinci argüman kullanın:
her zaman belirli dal üzerinde ise execSync('git rev-parse HEAD', {cwd: __dirname})
gibi, kolayca karma taahhüt almak için .git/refs/heads/<branch_name>
okuyabilir.
const fs = require('fs');
const util = require('util');
util.promisify(fs.readFile)('.git/refs/heads/master').then((hash) => {
console.log(hash.toString().trim());
});
ve nereye takıldınız? – Sirko
@Sirko En baştan mı? – Noah
Zaten doğru düğüm modülünü buldunuz. Afaik, tam olarak ne yapmak istediğinize örnek oldu. – Sirko