Відповіді:
Ви можете отримати список будь-яких налаштованих віддалених URL-адрес за допомогою команди git remote -v
.
Це дасть вам щось подібне:
base /home/***/htdocs/base (fetch)
base /home/***/htdocs/base (push)
origin git@bitbucket.org:*** (fetch)
origin git@bitbucket.org:*** (push)
-v
для "багатослівної" насправді є більш поширеним варіантом. Це також підтримується git branch
. Основна відмінність полягає в коротких та довгих варіантах (по суті, одиночний проти подвійного тире). Однак, підтримка --list з remote
підкомандою матиме сенс. Якщо ви дійсно цього хочете, я б сказав, надішліть запит на функцію.
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
...
На сьогодні відповіді розповідають, як знайти існуючі гілки:
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
було б зручно, якби ви співпрацювали з двома або більше людьми, які працюють над одним проектом і отримували доступ до сховищ один одного безпосередньо, а не передавали все походження.
Простий спосіб побачити віддалені гілки:
git branch -r
Щоб побачити місцеві відділення:
git branch -l
git ls-remote
має показати вам усі віддалені файли, доступні для отримання із сервера вище ( git-scm.com/docs/git-ls-remote ). Я вважаю, що всі відповіді на цій сторінці розповідають лише про те, як перелічити віддалені та відстежуючі гілки, які ви вже отримали, а це Catch-22. Ви не можете отримати пульт, поки не дізнаєтесь, як посилатися на нього на верхньому сервері.
Жоден із цих методів не працює так, як просить запитуючий, і в якому я часто виникала потреба. наприклад:
$ 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. Було б все одно приємно мати.
git remote -v
тому що -v - для багатослівного.git remote
дає простий перелік віддалених (база, походження в даному випадку). Опція -v включає URL-адресу як для отримання, так і для push-операцій кожного пульта.