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

4

我正在编写一个Node API服务器,需要向用户发送存储在服务器上的git仓库中本地分支列表。很多地方建议使用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个回答

4
当然有!本地分支前缀为refs/heads,而远程分支前缀为refs/remotes,如下所示: enter image description here 祝好运!
编辑:
甚至有更好的方法。您可以在返回引用之前遍历返回的引用,并使用reference.isRemote()清除远程引用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接