Вам нужна команда, git ls-remote
которая позволяет вам получить некоторую информацию об удаленных репозиториях, но вы не можете отображать историю, списки каталогов или что-либо подобное: по сути, она позволяет вам видеть удаленные объекты только на очень высоком уровне (вы можете видеть текущие заголовки и теги, например).
Единственный реальный способ сделать то, что вы хотите (если я правильно понимаю), - это использовать ssh для запуска удаленной команды и возврата результатов, например:
ssh me@otherhost "cd repo && git log -n 10"
То, что вы хотите, было бы прекрасной функциональностью, если бы они могли его добавить, но из того, что я читал, это не очень просто, поскольку для получения истории и т. Д. Требуется много информации, которая должна быть локальной для git, и в этот момент вы, возможно, также сделали git fetch .
git clone
получить только одну ревизию путем передачи--depth 1
. Это позволяет избежать получения потенциально больших объемов истории, и этого будет достаточно для ответа на такие вопросы, как «какие файлы присутствуют в ревизииabcdef1234567890
?»Git - это распределенная система контроля версий, а Subversion - централизованная (клиент-серверная) система контроля версий. Они работают по-разному; привыкнуть к этому. Прочтите мой ответ, объясняющий последствия этой разницы, в git-эквиваленте
svn status -u
вопроса на StackOverflow.Повторюсь: в централизованной системе контроля версий (например, CVS или Subversion) почти все команды обрабатываются на сервере и связаны с сетью. Локально выполняется очень мало команд. Обратите внимание, что для обеспечения хорошей производительности «svn status» и «svn diff» Subversion сохраняет «чистую копию» извлеченной версии на клиенте, чтобы не задействовать сетевую передачу для этих общих операций (это означает, что Subversion checkout = 2 x размер рабочего каталога минимум).
В распределенной системе контроля версий (например, Git, Mercurial или Bazaar), где у вас есть локальная копия (клон) всего репозитория, почти все команды выполняются на клиенте . Очень немногие команды требуют сетевого подключения к другому репозиторию (к серверу).
Количество команд, которые вы можете выполнять на сервере, ограничено.
« git archive --remote = <URL> HEAD».
« git clone --depth = 1 <URL>».
источник
Взгляните на http://git-scm.com/book/en/Git-Internals-Transfer-Protocols для получения информации о том, как это сделать с помощью некоторых транспортных протоколов. Обратите внимание, что это не будет работать для стандартного git через SSH.
Для git через SSH обновленный серверный git должен позволять вам архивировать git прямо с удаленного компьютера, который затем можно было бы передать, например, «tar t», чтобы получить список всех файлов в данном коммите.
источник
GitHub совместим с svn, поэтому вы можете использовать svn ls
BitBucket поддерживает архив git, поэтому вы можете загружать архив tar и просматривать заархивированные файлы. Это не очень эффективно, но работает:
источник
Не совсем точно, но наоборот.
Используйте GitHub Developer API
Открыв это, вы получите последние коммиты.
https://api.github.com/repos/learningequality/ka-lite/commit
Вы можете получить конкретную информацию о фиксации, прикрепив хеш фиксации в конце указанного выше URL.
Все файлы (для основного дерева нужен sha)
https://api.github.com/repos/learningequality/ka-lite/git/trees/7b698a988683b161bdcd48a949b01e2b336b4c01
Надеюсь, это поможет.
источник
Некоторые, вероятно, сочтут это грязным, но очень практичным решением в случае репозиториев github является создание скрипта, например "git-ls":
Сделать его исполняемым и достижимы конечно:
chmod a+x git-ls; sudo cp git-ls /usr/local/bin
. Теперь вы просто запускаете его, как хотите:Также знайте, что есть
git instaweb
утилита для ваших локальных файлов. Возможность показывать файлы и иметь такой сервер, на мой взгляд, не нарушает никаких децентрализованных характеристик, присущих git.источник
curl -s https://github.com/Itseez/opencv | grep js-directory-link | sed 's|.* title="\(.*\)".*|\1|'
если вы знаете удаленную ветку, которую хотите проверить, вы можете узнать последнюю версию через:
источник