Respuestas:
Puede obtener una lista de las URL remotas configuradas con el comando git remote -v
.
Esto te dará algo como lo siguiente:
base /home/***/htdocs/base (fetch)
base /home/***/htdocs/base (push)
origin git@bitbucket.org:*** (fetch)
origin git@bitbucket.org:*** (push)
-v
para "detallado" es en realidad la opción más común. También es compatible con git branch
. La diferencia básica es las opciones cortas frente a las largas (esencialmente un solo guión doble). Dicho esto, apoyar --list con el remote
subcomando tendría sentido. Si realmente lo desea, diría que envíe una solicitud de función.
FWIW, tenía exactamente la misma pregunta, pero no pude encontrar la respuesta aquí. Probablemente no sea portátil, pero al menos para gitolite, puedo ejecutar lo siguiente para obtener lo que quiero:
$ 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
...
Las respuestas hasta ahora le dicen cómo encontrar sucursales existentes:
git branch -r
O repositorios para el mismo proyecto [ver nota a continuación] :
git remote -v
Hay otro caso. Es posible que desee saber sobre otros repositorios de proyectos alojados en el mismo servidor.
Para descubrir esa información, uso SSH o PuTTY para iniciar sesión en el host y ls
encontrar los directorios que contienen los otros repositorios. Por ejemplo, si cloné un repositorio escribiendo:
git clone ssh://git.mycompany.com/git/ABCProject
y quiero saber qué más hay disponible, inicio sesión en git.mycompany.com a través de SSH o PuTTY y escribo:
ls /git
asumiendo ls
dice:
ABCProject DEFProject
Puedo usar el comando
git clone ssh://git.mycompany.com/git/DEFProject
para acceder al otro proyecto.
NOTA: Por lo general,
git remote
simplemente me informa sobreorigin
el repositorio desde el que cloné el proyecto.git remote
Sería útil si estuvieras colaborando con dos o más personas trabajando en el mismo proyecto y accediendo directamente a los repositorios de los demás en lugar de pasar todo por el origen.
Una forma simple de ver ramas remotas es:
git branch -r
Para ver sucursales locales:
git branch -l
git ls-remote
debería mostrarle todos los controles remotos disponibles para buscar desde el servidor ascendente ( git-scm.com/docs/git-ls-remote ). Creo que todas las respuestas en esta página solo le dicen cómo enumerar los controles remotos y las ramas de seguimiento que ya ha obtenido, que es un Catch-22. No puede recuperar un control remoto hasta que sepa cómo referirse a él en el servidor ascendente.
Ninguno de esos métodos funciona de la manera que el interlocutor está pidiendo y que a menudo también he necesitado. p.ej:
$ 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.
El objetivo de hacer esto es que no tiene ninguna información, excepto el usuario remoto y el servidor, y desea saber a qué tiene acceso.
La mayoría de las respuestas asumen que está realizando consultas desde un conjunto de trabajo de git. El interlocutor asume que no lo eres.
Como ejemplo práctico, suponga que hay un repositorio foo.git en el servidor. Alguien en su sabiduría decide que necesita cambiarlo a foo2.git. Sería realmente bueno hacer una lista de un directorio git en el servidor. Y sí, veo los problemas para git. Sin embargo, aún sería bueno tenerlo.
git remote -v
porque -v es para verbose.git remote
da una lista simple de controles remotos (base, origen en este caso). La opción -v incluye la url para las operaciones de recuperación y envío de cada control remoto.