Ответы:
Вы можете получить список любых настроенных удаленных 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, у меня был точно такой же вопрос, но я не мог найти ответ здесь. Это, вероятно, не переносимо, но по крайней мере для gitolite, я могу запустить следующее, чтобы получить то, что я хочу:
$ 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 remote -vпотому что -v для многословия.git remoteдает простой список пультов (база, источник в этом случае). Опция -v включает URL для операций извлечения и отправки каждого пульта.