微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用NodeGit列出所有文件? 相当于'git ls-files'

如何解决如何使用NodeGit列出所有文件? 相当于'git ls-files'

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。