我希望检查给定存储库中存在哪些分支。我知道如何使用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
但是,如果我的目标只是简单地检查出存在哪些分支,那么克隆完整的存储库是错误的。难道没有办法只克隆元数据吗?
答案 0 :(得分:1)
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/
开头的引用。