我试图用 nodegit推或拉. 包很受欢迎,一切正常,但我似乎无法找到这些基本方法.我错过了什么? 还有其他套餐吗? 试试这个以获取和拉取: /** * Fetch from remote * fileName: pull.js * * @param {
包很受欢迎,一切正常,但我似乎无法找到这些基本方法.我错过了什么?
还有其他套餐吗?
试试这个以获取和拉取:/** * Fetch from remote * fileName: pull.js * * @param {string} repositoryPath - Path to local git repository * @param {string} remoteName - Remote name * @param {string} branch - Branch to fetch */ var Git = require('nodegit'); var open = Git.Repository.open; module.exports = function (repositoryPath, remoteName, branch, cb) { var repository; var remoteBranch = remoteName + '/' + branch; open(repositoryPath) .then(function (_repository) { repository = _repository; return repository.fetch(remoteName); }, cb) .then(function () { return repository.mergeBranches(branch, remoteBranch); }, cb) .then(function (oid) { cb(null, oid); }, cb); };
然后你可以这样使用:
var pull = require('./pull.js'); var remoteRef = 'origin'; pull(repositoryPath, remoteRef, ourBranch, function(errFetch, oid) { if (errFetch) { return errFetch; } console.log(oid); });
并试着推送:
/** * Pushes to a remote * * @param {string} repositoryPath - Path to local git repository * @param {string} remoteName - Remote name * @param {string} branch - Branch to push * @param {doneCallback} cb */ var Git = require('nodegit'); var open = Git.Repository.open; module.exports = function (repositoryPath, remoteName, branch, cb) { var repository, remoteResult; open(repositoryPath) .then(function (_repository) { repository = _repository; return repository.getRemote(remoteName); }, cb) .then(function (_remoteResult) { remoteResult = _remoteResult; return repository.getBranch(branch); }, cb) .then(function (ref) { return remoteResult.push([ref.toString()], new Git.PushOptions()); }, cb) .then(function (number) { cb(null, number); }, cb); };