4

サーバーにあるgitリポジトリのローカルブランチのリストをユーザーに送信する必要があるノードAPIサーバーを作成しています。多くの場所で、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ますか?

4

1 に答える 1

4

確かにあります!ローカル ブランチには refs/heads というプレフィックスが付いていますが、リモート ブランチには refs/remotes というプレフィックスが付いています。

ここに画像の説明を入力

幸運を!

編集:

さらに良い方法があります。返された参照を返す前にトラバースし、reference.isRemote() でリモートを取り除くことができます。

于 2016-08-01T12:01:52.347 に答える