Respostas:
Você pode obter uma lista de todas as URLs remotas configuradas com o comando git remote -v.
Isso fornecerá algo como o seguinte:
base /home/***/htdocs/base (fetch)
base /home/***/htdocs/base (push)
origin git@bitbucket.org:*** (fetch)
origin git@bitbucket.org:*** (push)
-vpara "detalhado" é realmente a opção mais comum. Também é suportado por git branch. A diferença básica é as opções curta versus longa (traço simples vs duplo, essencialmente). Dito isso, fazer o suporte a --list com o remotesubcomando faria sentido. Se você realmente quiser, diria que envie uma solicitação de recurso.
FWIW, eu tinha exatamente a mesma pergunta, mas não consegui encontrar a resposta aqui. Provavelmente não é portátil, mas pelo menos para o gitolite, posso executar o seguinte para obter o que quero:
$ ssh git@git.xxx.com info
hello akim, this is gitolite 2.3-1 (Debian) running on git 1.7.10.4
the gitolite config gives you the following access:
R W android
R W bistro
R W checkpn
...
As respostas até o momento mostram como encontrar ramificações existentes:
git branch -r
Ou repositórios para o mesmo projeto [veja nota abaixo] :
git remote -v
Há outro caso. Você pode querer saber sobre outros repositórios de projetos hospedados no mesmo servidor.
Para descobrir essas informações, eu uso o SSH ou o PuTTY para efetuar login no host e lsencontrar os diretórios que contêm os outros repositórios. Por exemplo, se eu clonasse um repositório, digitando:
git clone ssh://git.mycompany.com/git/ABCProject
e quero saber o que mais está disponível, eu entro no git.mycompany.com via SSH ou PuTTY e digito:
ls /git
assumindo lsdiz:
ABCProject DEFProject
Eu posso usar o comando
git clone ssh://git.mycompany.com/git/DEFProject
para ter acesso ao outro projeto.
NOTA: Geralmente,
git remotesimplesmente me fala sobreorigin- o repositório do qual clonei o projeto.git remoteseria útil se você estivesse colaborando com duas ou mais pessoas trabalhando no mesmo projeto e acessando os repositórios umas das outras diretamente, em vez de passar tudo pela origem.
Uma maneira simples de ver ramificações remotas é:
git branch -r
Para ver filiais locais:
git branch -l
git ls-remotedeve mostrar todos os controles remotos disponíveis para busca no servidor upstream ( git-scm.com/docs/git-ls-remote ). Acredito que todas as respostas desta página apenas digam como listar os controles remotos e os ramos de rastreamento que você já buscou, que é um Catch-22. Você não pode buscar um controle remoto até saber como se referir a ele no servidor upstream.
Nenhum desses métodos funciona da maneira que o interlocutor está solicitando e do qual muitas vezes eu também precisei. por exemplo:
$ git remote
fatal: Not a git repository (or any of the parent directories): .git
$ git remote user@bserver
fatal: Not a git repository (or any of the parent directories): .git
$ git remote user@server:/home/user
fatal: Not a git repository (or any of the parent directories): .git
$ git ls-remote
fatal: No remote configured to list refs from.
$ git ls-remote user@server:/home/user
fatal: '/home/user' does not appear to be a git repository
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
O objetivo principal de fazer isso é que você não possui nenhuma informação, exceto o usuário e servidor remotos, e deseja descobrir a que tem acesso.
A maioria das respostas assume que você está consultando de dentro de um conjunto de trabalho do git. O interlocutor está assumindo que você não é.
Como um exemplo prático, suponha que havia um repositório foo.git no servidor. Alguém em sua sabedoria decide que precisa mudar para foo2.git. Seria realmente bom fazer uma lista de um diretório git no servidor. E sim, vejo os problemas para o git. Ainda seria bom ter isso.
git remote -vporque -v é detalhado.git remotefornece uma lista simples de controles remotos (base, origem neste caso). A opção -v inclui o URL para as operações de busca e envio de cada controle remoto.