2012-04-17 9 views
316

Tengo un repositorio de git. Este repositorio tiene múltiples repositorios remotos (creo). ¿Cómo puedo obtener una lista de los repositorios remotos que pertenecen a dicho repositorio? Algo como git list --origins o algo así?Lista de controles remotos para un repositorio git?

+1

¿Te refieres a una lista de mandos a distancia? –

Respuesta

412

Puede obtener una lista de las URL remotas configuradas con el comando git remote -v.

Esto le dará algo como lo siguiente:

base /home/***/htdocs/base (fetch) 
base /home/***/htdocs/base (push) 
origin [email protected]:*** (fetch) 
origin [email protected]:*** (push) 
+7

'git remote -v' porque -v es para verbose. 'git remote' proporciona una lista simple de controles remotos (base, origen en este caso). La opción -v incluye la url para las operaciones de búsqueda y envío de cada control remoto. – dhj

+1

Tengo que estar de acuerdo con @AlexMills, si es git branch --list, debería ser git remote --list – jimmyb

+0

'-v' para" verbose "es en realidad la opción más común. También es compatible con 'git branch'. La diferencia básica son las opciones cortas frente a las largas (en concreto, en el caso del tablero doble). Dicho esto, la lista de apoyo con el subcomando 'remote' tendría sentido. Si realmente lo desea, yo diría que envíe una solicitud de función. – Randall

34

Si sólo necesita los nombres de los repositorios remotos (y no cualquiera de los otros datos), un simple git remote es suficiente.

$ git remote 
iqandreas 
octopress 
origin 
7

Una manera simple de ver las sucursales remotas es:

git branch -r 

Para ver las secciones locales:

git branch -l 
+12

Esto es para sucursales remotas; el usuario solicitó _repos_ remoto. –

+1

'git ls-remote' debe mostrarle todos los controles remotos disponibles para recuperar desde el servidor ascendente (https://git-scm.com/docs/git-ls-remote). Creo que todas las respuestas en esta página solo te dicen cómo enumerar los controles remotos y rastrear las ramas que ya has obtenido, que es un Catch-22. No puede recuperar un control remoto hasta que sepa cómo hacer referencia a él en el servidor ascendente. –

25

Fwiw, que tienen exactamente la misma pregunta, pero no pude encontrar la responde aquí Es probablemente no es portátil, pero al menos por gitolite, que puede ejecutar el siguiente para conseguir lo que quiero:

$ 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 
... 
4

Las respuestas hasta el momento le indican cómo encontrar ramas existentes:

git branch -r 

o repositorios para el mismo proyecto [véase la nota a continuación]:

git remote -v 

Hay otro caso. Es posible que desee conocer otros repositorios de proyectos alojados en el mismo servidor.

Para descubrir esa información, uso ssh o putty para iniciar sesión en host y ls para buscar los directorios que contienen los otros repositorios. Por ejemplo, si cloné un acuerdo de recompra escribiendo:

git clone ssh://git.mycompany.com/git/ABCProject 

y quieren saber lo que hay disponible, registro en git.mycompany.com por ssh o masilla y tipo:

ls /git 

ls asumiendo dice:

ABCProject DEFProject 

que puede utilizar el comando

git clone ssh://git.mycompany.com/git/DEFProject 

para obtener acceso al otro proyecto.

NOTA: Por lo general, git remote simplemente me dice acerca origin - el repositorio desde el que cloné el proyecto. git remote sería útil si estuvieras colaborando con dos o más personas que trabajan en el mismo proyecto y accediendo directamente a los repositorios de los demás en lugar de pasar todo por el origen.

+0

Esta es una respuesta mejor porque habla sobre los repositorios, en lugar de las ramas y explica cómo enumerar repositorios que no están en el repositorio actualmente desprotegido –

Cuestiones relacionadas