2015-03-26 1 views
3

Первый раз, используя NodeGit и имея проблемы с функцией Reset.Yeoman с помощью NodeGit's Reset, получая постоянную ошибку объекта

Я пытаюсь сбросить папку, которая была клонирована к текущему HEAD источника/ведущего.

Даже если я даю ему цель, он говорит, что все еще требуется:

Error: Object target is required. 

Текущий код:

var Reset = nodegit.Reset; 
var templateDir = this.templatePath('/folder'); 

nodegit.Repository.open(templateDir) 
    .then(function(repo) { 
     repository = repo; 

     Reset.reset(repository, templateDir, Reset.TYPE.HARD, { 
      remoteCallbacks: { 
       credentials: function(url, userName) { 
        return nodegit.Cred.sshKeyNew(userName, sshPublicKey, sshPrivateKey, ""); 
       } 
      } 
     }) 
     .done(function(repo) { 
      console.log("reset done"); 
     }); 
    }); 

templateDir полный путь к папке с помощью templatePath YEOMAN в.

Удивление, может ли кто-нибудь дать мне понять, что я делаю неправильно или отсутствует. Я не видел примера для этого в папке «Пример».

Мой ожидается конечный результат будет равен запуска этого в терминале:

git reset --hard origin/master 

ответ

1

Вы можете проверить test case, что делает жесткий сброс для примера.

Суть в том, что templateDir - объект фиксации, который вы хотите сбросить. Вам действительно не нужно remoteCallbacks либо, если вы не хотите делать выборку или какую-то дистанционную операцию.

Попробуйте это:

var Reset = nodegit.Reset; 
var templateDir = this.templatePath('/folder'); 
var repository = repo; 

nodegit.Repository.open(templateDir) 
.then(function(repo) { 
    repository = repo; 

    return repository.fetch('origin'); 
}) 
.then(function() { 
    return repository.getBranchCommit('origin/HEAD'); 
}) 
.then(function(originHeadCommit) { 
    return Reset.reset(repository, originHeadCommit, Reset.TYPE.HARD); 
}) 
.done(function(repo) { 
    console.log("reset done"); 
}); 
+0

Спасибо за помощь. Теперь я получаю «Ошибка: Ссылка» refs/remotes/origin/HEAD «не найден» при запуске выше. Итак, getBranchCommit не находит удалённую голову, никаких советов? – Shane

+0

Я просто добавил выборку к примеру. Попробуйте. – johnhaley81

+0

Думаю, мы приближаемся. Вот то, с чем я сейчас работаю: https://gist.github.com/7674b50839b4e11c23b3 - теперь он не бросает никаких ошибок, но также не перезаписывает файлы. – Shane