Nodegit Как я могу получить новый список филиалов?

open(o.localPath).then(function (repo) {
        repository = repo;
        return repo.fetchAll(credentials);
    }).then(function () {
        return repository.getReferenceNames(Git.Reference.TYPE.LISTALL);
    }).then(function (arrayString) {
        console.log(arrayString);   
    }).catch(err => {
        reject(err);
    })

Я выбрал все ветви один раз (всего 5 веток) и удалил одну ветку, локальную и удаленную, это по-прежнему возвращает 5 веток, но должно вернуть 4 ветви, как я могу получить новый список веток?

2 ответа

repository.getReferenceNames(Git.Reference.TYPE.LISTALL); может быть синонимом

git show-ref команда.

Это использует ссылки в .git/refs папка.

Вы хотите запустить git fetch --all --prune после удаления ветки удалить удаленные ссылки отслеживания, которые удалены в удаленном.

В зависимости от вашей версии nodegit (для [v0.5.0] и выше)

//...
const fetchOptions = { callbacks: credentials, pruneAfter: true }
return repo.fetchAll(fetchOptions)
//...

Для более старых версий ( v0.4.1 - v0.3.0)

//...
return repo.fetchAll(remoteCallbacks, true)
//...

Я использую v0.27.0, и у меня работает следующее:

      repo.fetchAll({
  callbacks: {
    credentials(url, username) {
      return ...
    }
  },
  prune: Git.Fetch.PRUNE.GIT_FETCH_PRUNE
})
Другие вопросы по тегам