Найти все ветки репо с помощью ruby-git gem, без клонирования всего репо - PullRequest
1 голос
/ 01 мая 2019

Я хочу проверить, какие ветви существуют для данного репозитория. Я знаю, как это сделать, клонировав полный репозиторий с ruby-git gem :

Git.clone("https://user@bitbucket.org/my_repo.git", "my_repo", :path => "/my/repos")

g = Git.open("/my/repos/my_repo")

g.branches.each do |branch|
  puts branch.name
end

Но если моя цель - просто проверить, какие ветви существуют, то неправильно клонировать полный репозиторий. Разве нет способа клонировать только метаданные?

1 Ответ

1 голос
/ 01 мая 2019

git ls-remote --heads https://user@bitbucket.org/my_repo.git печатает все ветви в удаленном хранилище без клонирования хранилища. Обратите внимание, что удаленный репозиторий может отклонить git ls-remote в целях безопасности.

Есть пример на ruby-git gem ,

Git.ls_remote('https://github.com/ruby-git/ruby-git.git') # returns a hash containing the available references of the repo.

Так что вы можете попробовать

Git.ls_remote('https://user@bitbucket.org/my_repo.git')

Если Git.ls_remote не поддерживает --heads, ссылки, начинающиеся с refs/heads/, - это то, что вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...