Liste der Fernbedienungen für ein Git-Repository?

542

Ich habe ein Git-Repository. Dieses Repository verfügt über mehrere Remote-Repositorys (glaube ich). Wie kann ich eine Liste der Remote-Repositorys abrufen, die zu diesem Repository gehören?

So git list --remotesoder so?

Priester
quelle

Antworten:

750

Mit dem Befehl können Sie eine Liste aller konfigurierten Remote-URLs abrufen git remote -v.

Dies gibt Ihnen ungefähr Folgendes:

base    /home/***/htdocs/base (fetch)
base    /home/***/htdocs/base (push)
origin  [email protected]:*** (fetch)
origin  [email protected]:*** (push)
Matthew Scharley
quelle
18
git remote -vweil -v für ausführlich ist. git remotegibt eine einfache Liste von Fernbedienungen (Basis, Ursprung in diesem Fall). Die Option -v enthält die URL für Abruf- und Push-Vorgänge jeder Fernbedienung.
Dhj
2
Ich muss @AlexMills zustimmen, wenn es git branch --list ist, sollte es git remote --list
jimmyb
1
-vfür "wortreich" ist eigentlich die üblichere Option. Es wird auch von unterstützt git branch. Der grundlegende Unterschied besteht in kurzen und langen Optionen (im Wesentlichen in einfachen oder doppelten Strichen). Allerdings remotewäre es sinnvoll , --list mit dem Unterbefehl zu unterstützen. Wenn Sie es wirklich wollen, würde ich sagen, senden Sie eine Funktionsanfrage.
Randall
4
Dies setzt voraus, dass man bereits einen Klon hat. Wenn Sie herausfinden möchten, was Sie zunächst klonen sollen , wird etwas anderes benötigt ...
Mikhail T.
60

Wenn Sie nur die Namen der Remote-Repositorys (und keine der anderen Daten) benötigen, reicht ein einfaches git remoteaus.

$ git remote
iqandreas
octopress
origin
IQAndreas
quelle
32

FWIW, ich hatte genau die gleiche Frage, aber ich konnte hier keine Antwort finden. Es ist wahrscheinlich nicht tragbar, aber zumindest für Capitolit kann ich Folgendes ausführen, um das zu bekommen, was ich will:

$ 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
quelle
24

Die bisherigen Antworten zeigen Ihnen, wie Sie vorhandene Filialen finden:

git branch -r

Oder Repositorys für dasselbe Projekt [siehe Hinweis unten] :

git remote -v

Es gibt noch einen anderen Fall. Möglicherweise möchten Sie Informationen zu anderen Projekt-Repositorys erhalten, die auf demselben Server gehostet werden.

Um diese Informationen zu ermitteln, verwende ich SSH oder PuTTY , um mich beim Host anzumelden und lsdie Verzeichnisse zu finden, die die anderen Repositorys enthalten. Wenn ich beispielsweise ein Repository durch Eingabe von Folgendes geklont habe:

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

und um zu wissen, was noch verfügbar ist, logge ich mich über SSH oder PuTTY bei git.mycompany.com ein und tippe:

ls /git

Annahme lssagt:

 ABCProject DEFProject

Ich kann den Befehl verwenden

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

um Zugang zum anderen Projekt zu erhalten.

HINWEIS: git remoteErzählt mir normalerweise nur von origin- dem Repository, aus dem ich das Projekt geklont habe. git remoteDies wäre praktisch, wenn Sie mit zwei oder mehr Personen zusammenarbeiten würden, die an demselben Projekt arbeiten und direkt auf die Repositorys des jeweils anderen zugreifen, anstatt alles über den Ursprung zu übertragen.

Dale Wilson
quelle
2
Dies ist eine bessere Antwort, da es sich eher um die Repositorys als um die Zweige handelt und erklärt, wie Repositorys aufgelistet werden, die sich nicht im aktuell ausgecheckten Repository befinden
Edward Ross
16

Eine einfache Möglichkeit, entfernte Zweige anzuzeigen, ist:

git branch -r

So sehen Sie lokale Niederlassungen:

git branch -l
Andy Seitz
quelle
15
Dies ist für entfernte Zweige; Der Benutzer fragte nach Remote- Repos .
Owen Blacker
4
git ls-remotesollte Ihnen alle Fernbedienungen anzeigen, die zum Abrufen vom Upstream-Server verfügbar sind ( git-scm.com/docs/git-ls-remote ). Ich glaube, dass alle Antworten auf dieser Seite Ihnen nur sagen, wie Sie die Fernbedienungen und Verfolgungszweige auflisten, die Sie bereits abgerufen haben, was ein Catch-22 ist. Sie können eine Fernbedienung erst abrufen, wenn Sie wissen, wie Sie auf dem Upstream-Server darauf verweisen können.
Reb.Cabin
0

Keine dieser Methoden funktioniert so, wie es der Fragesteller verlangt und was ich oft auch gebraucht habe. z.B:

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

Der springende Punkt dabei ist, dass Sie außer dem Remote-Benutzer und dem Server keine Informationen haben und herausfinden möchten, auf was Sie Zugriff haben.

Bei den meisten Antworten wird davon ausgegangen, dass Sie Fragen innerhalb eines Git-Arbeitssatzes stellen. Der Fragesteller geht davon aus, dass Sie es nicht sind.

Angenommen, auf dem Server befindet sich ein Repository foo.git. Jemand in ihrer Weisheit entscheidet, dass er es in foo2.git ändern muss. Es wäre wirklich schön, eine Liste eines Git-Verzeichnisses auf dem Server zu erstellen. Und ja, ich sehe die Probleme für Git. Es wäre trotzdem schön zu haben.

Dale Amon
quelle