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
})