问题描述
git ls-files -mo --exclude-standard
在NodeGit
世界中是否有与之等效的东西?
解决方法
这是满足上述要求的一种方法:
const Git = require("nodegit");
const _ = require("lodash");
function getDirtyFiles(path) {
Git.Repository.open(path).then(function (repository) {
repository.getStatus().then(function(statusFiles) {
const dirtyFiles = _.chain(statusFiles)
.filter((statusFile) => (statusFile.isModified() || statusFile.isNew()))
.flatMap((statusDirtyFile) => statusDirtyFile.path())
.value();
console.log(dirtyFiles);
});
});
};
getDirtyFiles(process.cwd());
以下行有助于匹配-mo
参数:statusFile.isModified() || statusFile.isNew()