0

我目前运行以下git命令来列出所有未跟踪和修改的文件:

git ls-files -mo --exclude-standard

世界上有没有与之相当的东西NodeGit

4

1 回答 1

0

这是我解决上述要求的方法之一:

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()

于 2020-09-22T13:08:42.807 回答