NodeGit如何获取本地分支列表?

时间:2016-06-28 21:13:35

标签: node.js git nodegit

我正在编写一个节点API服务器,需要在服务器上的git repo中向用户发送本地分支列表。很多地方建议使用NodeGit中的Repository#getReferenceNames,这就是我所做的:

exports.getBranches = function (req, res) {
    NodeGit.Repository.open(config.database).then(function(repo) {
        return repo.getReferenceNames(NodeGit.Reference.TYPE.LISTALL);
    }).then(function (arrayString) {
        res.status(200).json({message: "OK", data: arrayString});
    }).catch(function (err) {
        res.status(500).json({message: err, data: []});
    }).done(function () {
        console.log("finish");
    });
};

但是,此函数返回所有分支。有没有办法只获得像命令行git branch那样的本地分支?

1 个答案:

答案 0 :(得分:2)

当然有!本地分支是前缀refs / heads,而远程分支是前缀refs / remotes,如下所示:

enter image description here

祝你好运!

修改

甚至有更好的方法。您可以在返回之前遍历返回的引用,并使用reference.isRemote()清除远程引用。