Réponses:
Vous pouvez obtenir une liste de toutes les URL distantes configurées avec la commande git remote -v
.
Cela vous donnera quelque chose comme ceci:
base /home/***/htdocs/base (fetch)
base /home/***/htdocs/base (push)
origin git@bitbucket.org:*** (fetch)
origin git@bitbucket.org:*** (push)
-v
pour "verbeux" est en fait l'option la plus courante. Il est également soutenu par git branch
. La différence de base est les options courtes vs longues (simple vs double tiret, essentiellement) Cela dit, soutenir --list avec la remote
sous - commande aurait du sens. Si vous le voulez vraiment, je dirais soumettre une demande de fonctionnalité.
FWIW, j'avais exactement la même question, mais je n'ai pas pu trouver la réponse ici. Ce n'est probablement pas portable, mais au moins pour la gitolite, je peux exécuter ce qui suit pour obtenir ce que je veux:
$ 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
...
Jusqu'à présent, les réponses vous indiquent comment trouver des succursales existantes:
git branch -r
Ou référentiels pour le même projet [voir note ci-dessous] :
git remote -v
Il y a un autre cas. Vous voudrez peut-être en savoir plus sur les autres référentiels de projets hébergés sur le même serveur.
Pour découvrir ces informations, j'utilise SSH ou PuTTY pour me connecter à l'hôte et ls
trouver les répertoires contenant les autres référentiels. Par exemple, si j'ai cloné un référentiel en tapant:
git clone ssh://git.mycompany.com/git/ABCProject
et je veux savoir quoi d'autre est disponible, je me connecte à git.mycompany.com via SSH ou PuTTY et tape:
ls /git
en supposant ls
que:
ABCProject DEFProject
Je peux utiliser la commande
git clone ssh://git.mycompany.com/git/DEFProject
pour accéder à l'autre projet.
REMARQUE: En général,
git remote
il me parle simplementorigin
du référentiel à partir duquel j'ai cloné le projet.git remote
serait pratique si vous collaboriez avec deux personnes ou plus travaillant sur le même projet et accédant directement aux référentiels de l'autre plutôt que de tout passer par l'origine.
Un moyen simple de voir les branches distantes est:
git branch -r
Pour voir les succursales locales:
git branch -l
git ls-remote
devrait vous montrer toutes les télécommandes disponibles pour la récupération à partir du serveur en amont ( git-scm.com/docs/git-ls-remote ). Je crois que toutes les réponses sur cette page vous indiquent uniquement comment répertorier les télécommandes et les branches de suivi que vous avez déjà récupérées, qui est un Catch-22. Vous ne pouvez pas récupérer une télécommande tant que vous ne savez pas comment vous y référer sur le serveur en amont.
Aucune de ces méthodes ne fonctionne de la façon dont l'interrogateur le demande et dont j'ai souvent eu besoin. par exemple:
$ 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.
L'intérêt de cette opération est que vous ne disposez d'aucune information à l'exception de l'utilisateur et du serveur distants et que vous souhaitez savoir à quoi vous avez accès.
La majorité des réponses supposent que vous interrogez à partir d'un ensemble de travail git. Le questionneur suppose que vous ne l'êtes pas.
À titre d'exemple pratique, supposons qu'il existe un référentiel foo.git sur le serveur. Quelqu'un dans sa sagesse décide qu'il doit le changer en foo2.git. Ce serait vraiment bien de faire une liste d'un répertoire git sur le serveur. Et oui, je vois les problèmes pour git. Ce serait quand même bien d'avoir.
git remote -v
parce que -v est pour verbeux.git remote
donne une simple liste de télécommandes (base, origine dans ce cas). L'option -v inclut l'url pour les opérations de récupération et de transmission de chaque télécommande.