Список віддалених файлів для сховища Git?


542

У мене є сховище Git. У цьому сховищі є кілька віддалених сховищ (я думаю). Як я можу отримати список віддалених сховищ, що належать до зазначеного сховища?

Як, git list --remotesчи щось подібне?

Відповіді:


750

Ви можете отримати список будь-яких налаштованих віддалених URL-адрес за допомогою команди git remote -v.

Це дасть вам щось подібне:

base    /home/***/htdocs/base (fetch)
base    /home/***/htdocs/base (push)
origin  git@bitbucket.org:*** (fetch)
origin  git@bitbucket.org:*** (push)

18
git remote -vтому що -v - для багатослівного. git remoteдає простий перелік віддалених (база, походження в даному випадку). Опція -v включає URL-адресу як для отримання, так і для push-операцій кожного пульта.
dhj

2
Я маю згоду з @AlexMills, якщо це git branch --list, це має бути git remote --list
jimmyb

1
-vдля "багатослівної" насправді є більш поширеним варіантом. Це також підтримується git branch. Основна відмінність полягає в коротких та довгих варіантах (по суті, одиночний проти подвійного тире). Однак, підтримка --list з remoteпідкомандою матиме сенс. Якщо ви дійсно цього хочете, я б сказав, надішліть запит на функцію.
Рандалл

4
Для цього потрібно мати вже клона. Намагаючись розібратися, з чого клонувати, для початку потрібно щось інше ...
Михайло Т.

60

Якщо вам потрібні лише імена віддалених сховищ (а не будь-які інші дані), достатньо простого git remote.

$ git remote
iqandreas
octopress
origin

32

FWIW, у мене було точно таке ж питання, але я не зміг знайти тут відповіді. Це, мабуть, не портативно, але, принаймні, для гітоліту, я можу виконати наступне, щоб отримати те, що я хочу:

$ 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

На сьогодні відповіді розповідають, як знайти існуючі гілки:

git branch -r

Або сховища для одного проекту [див. Примітку нижче] :

git remote -v

Є ще один випадок. Ви можете дізнатися про інші сховища проектів, розміщені на тому ж сервері.

Щоб виявити цю інформацію, я використовую SSH або PuTTY для входу в хост і lsпошуку каталогів, що містять інші сховища. Наприклад, якщо я клонував сховище, ввівши:

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

і хочу знати, що ще є, я входжу на git.mycompany.com за допомогою SSH або PuTTY і набираю:

ls /git

якщо вважати ls:

 ABCProject DEFProject

Я можу використовувати команду

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

отримати доступ до іншого проекту.

ПРИМІТКА: Зазвичай git remoteпросто мені кажуть про origin- сховище, з якого я клонував проект. git remoteбуло б зручно, якби ви співпрацювали з двома або більше людьми, які працюють над одним проектом і отримували доступ до сховищ один одного безпосередньо, а не передавали все походження.


2
Це краща відповідь, оскільки вона розповідає про сховища, а не про гілки та пояснює, як перелічити сховища, які не знаходяться в ревізованому сховищі
Едвард Росс

16

Простий спосіб побачити віддалені гілки:

git branch -r

Щоб побачити місцеві відділення:

git branch -l

15
Це для віддалених відділень; користувач запитав про віддалені репости .
Оуен Блекер

4
git ls-remoteмає показати вам усі віддалені файли, доступні для отримання із сервера вище ( git-scm.com/docs/git-ls-remote ). Я вважаю, що всі відповіді на цій сторінці розповідають лише про те, як перелічити віддалені та відстежуючі гілки, які ви вже отримали, а це Catch-22. Ви не можете отримати пульт, поки не дізнаєтесь, як посилатися на нього на верхньому сервері.
Reb.Cabin

0

Жоден із цих методів не працює так, як просить запитуючий, і в якому я часто виникала потреба. наприклад:

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

Вся справа в тому, що у вас немає ніякої інформації, крім віддаленого користувача та сервера, і ви хочете дізнатися, до чого у вас є доступ.

Більшість відповідей припускають, що ви запитуєте з робочого набору git. Опитуючий припускає, що ви цього не є.

В якості практичного прикладу припустимо, що на сервері був сховище foo.git. Хтось у своїй мудрості вирішує, що потрібно змінити його на foo2.git. Було б дійсно непогано скласти список каталогу git на сервері. І так, я бачу проблеми з git. Було б все одно приємно мати.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.