Lista de controles remotos para um repositório Git?

542

Eu tenho um repositório Git. Este repositório tem vários repositórios remotos (eu acho). Como posso obter uma lista dos repositórios remotos que pertencem ao referido repositório?

Gosta git list --remotesou algo assim?

padre
fonte

Respostas:

750

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  [email protected]:*** (fetch)
origin  [email protected]:*** (push)
Matthew Scharley
fonte
18
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.
dhj 13/07/2015
2
Eu tenho que concordar com @AlexMills, se é git --list ramo, deve ser git remoto --list
jimmyb
1
-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.
Randall
4
Isso requer que você já tenha um clone. Ao tentar descobrir, o que clone , para começar, algo mais é necessário ...
Mikhail T.
60

Se você precisar apenas dos nomes dos repositórios remotos (e não de outros dados), git remotebasta um simples .

$ git remote
iqandreas
octopress
origin
IQAndreas
fonte
32

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 [email protected] 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
...
akim
fonte
24

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 sobre origin- 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.

Dale Wilson
fonte
2
Esta é uma resposta melhor, porque ele fala sobre os repositórios, em vez dos ramos e explica como lista de repositórios que não estão no repositório atualmente check-out
Edward Ross
16

Uma maneira simples de ver ramificações remotas é:

git branch -r

Para ver filiais locais:

git branch -l
Andy Seitz
fonte
15
Isto é para ramificações remotas; o usuário solicitou repositórios remotos .
Owen Blacker
4
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.
Reb.Cabin
0

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.

Dale Amon
fonte