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?

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  git@bitbucket.org:*** (fetch)
origin  git@bitbucket.org:*** (push)

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

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

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.


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

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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.