Lista pilotów do repozytorium Git?

542

Mam repozytorium Git. To repozytorium ma wiele zdalnych repozytoriów (tak myślę). Jak mogę uzyskać listę zdalnych repozytoriów należących do tego repozytorium?

Jak git list --remotesczy coś takiego?

kapłan
źródło

Odpowiedzi:

750

Za pomocą polecenia możesz uzyskać listę dowolnych skonfigurowanych zdalnych adresów URL git remote -v.

To da ci coś takiego:

base    /home/***/htdocs/base (fetch)
base    /home/***/htdocs/base (push)
origin  [email protected]:*** (fetch)
origin  [email protected]:*** (push)
Matthew Scharley
źródło
18
git remote -vponieważ -v jest za pełne. git remotepodaje prostą listę pilotów (podstawa, pochodzenie w tym przypadku). Opcja -v obejmuje adres URL operacji pobierania i wypychania każdego pilota.
dj
2
Muszę się zgodzić z @AlexMills, jeśli jest to gałąź git
lista
1
-v„verbose” jest w rzeczywistości bardziej powszechną opcją. Jest również obsługiwany przez git branch. Podstawową różnicą są krótkie i długie opcje (zasadniczo pojedyncza kontra podwójna kreska). To powiedziawszy, wspieranie listy z remotekomendą miałoby sens. Jeśli naprawdę tego chcesz, wyślij prośbę o dodanie funkcji.
Randall
4
Wymaga to już posiadania klona. Próbując dowiedzieć się, od czego zacząć klonowanie , potrzebne jest coś jeszcze ...
Mikhail T.
60

Jeśli potrzebujesz tylko nazw zdalnych repozytoriów (a nie żadnych innych danych), wystarczy proste git remote.

$ git remote
iqandreas
octopress
origin
IQAndreas
źródło
32

FWIW, miałem dokładnie to samo pytanie, ale nie mogłem znaleźć tutaj odpowiedzi. Prawdopodobnie nie jest przenośny, ale przynajmniej w przypadku gitolitu mogę uruchomić następujące rzeczy, aby uzyskać to, czego chcę:

$ 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
źródło
24

Dotychczasowe odpowiedzi podpowiadają, jak znaleźć istniejące oddziały:

git branch -r

Lub repozytoria dla tego samego projektu [patrz uwaga poniżej] :

git remote -v

Jest inny przypadek. Możesz chcieć wiedzieć o innych repozytoriach projektów hostowanych na tym samym serwerze.

Aby odkryć te informacje, używam SSH lub PuTTY, aby zalogować się do hosta i lsznaleźć katalogi zawierające inne repozytoria. Na przykład, jeśli sklonowałem repozytorium, wpisując:

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

i chcę wiedzieć, co jeszcze jest dostępne, loguję się na git.mycompany.com przez SSH lub PuTTY i piszę:

ls /git

zakładając, lsmówi:

 ABCProject DEFProject

Mogę użyć polecenia

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

aby uzyskać dostęp do innego projektu.

UWAGA: Zazwyczaj git remotepo prostu mówi mi o origin- repozytorium, z którego sklonowałem projekt. git remoteprzydałoby się, gdybyś współpracował z co najmniej dwiema osobami pracującymi nad tym samym projektem i bezpośrednio uzyskującymi dostęp do swoich repozytoriów, zamiast przekazywać wszystko przez pochodzenie.

Dale Wilson
źródło
2
To lepsza odpowiedź, ponieważ mówi o repozytoriach, a nie o oddziałach i wyjaśnia, jak wyświetlić listę repozytoriów, które nie znajdują się w aktualnie sprawdzonym repozytorium
Edward Ross
16

Prostym sposobem na zobaczenie zdalnych gałęzi jest:

git branch -r

Aby zobaczyć lokalne oddziały:

git branch -l
Andy Seitz
źródło
15
Dotyczy to zdalnych oddziałów; użytkownik poprosił o zdalne repozytorium .
Owen Blacker
4
git ls-remotepowinien pokazać ci wszystkie dostępne piloty do pobrania z serwera nadrzędnego ( git-scm.com/docs/git-ls-remote ). Uważam, że wszystkie odpowiedzi na tej stronie mówią tylko, jak wyświetlić listę pilotów i gałęzi śledzenia, które już pobrałeś, czyli Catch-22. Nie możesz pobrać pilota, dopóki nie wiesz, jak się do niego odwoływać na serwerze nadrzędnym.
Reb.Cabin
0

Żadna z tych metod nie działa tak, jak pyta pytający i czego często też potrzebowałem. na przykład:

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

Chodzi o to, że nie masz żadnych informacji oprócz zdalnego użytkownika i serwera i chcesz dowiedzieć się, do czego masz dostęp.

Większość odpowiedzi zakłada, że ​​odpytujesz z zestawu roboczego git. Pytający zakłada, że ​​nie jesteś.

Jako praktyczny przykład załóżmy, że na serwerze istniało repozytorium foo.git. Ktoś w swojej mądrości decyduje, że musi go zmienić na foo2.git. Naprawdę miło byłoby zrobić listę katalogu git na serwerze. I tak, widzę problemy z git. Byłoby jednak miło mieć.

Dale Amon
źródło