go-git: Можно ли выполнить полный сброс до исходной ветки?

Я пытаюсь программно с помощью go-git добиться результата следующих команд git:

git fetch
git reset --hard origin/<some_branch>

Итак, есть git.Worktree.Reset(), который получает git.ResetOptions, который имеет Commit собственность типа plumbing.Hash. К сожалению, я не могу понять, как получить хеш дляorigin/<some_branch>.

Как я могу это сделать?

1 ответ

Решение

При использовании Git из командной строки вам нужно будет использовать rev-parse(см. Как найти хэш ветки в Git?).

Кажется, это частично реализовано в go-git:

Существует метод (*Repository).ResolveRevision, который удовлетворяет часть поведенияrev-parse

Источник: https://github.com/src-d/go-git/issues/599

Другие вопросы по тегам