Git: получать информацию об изменениях без локального репозитория? - PullRequest
3 голосов
/ 14 февраля 2011

Моя программа имеет удаленный доступ к репозиторию git через ssh, и иногда ей нужно получить информацию (например, сообщение о коммите) о конкретных коммитах в git. Как я могу запросить информацию такого рода в удаленном git-репозитории, не имея локального клона репозитория?

Ответы [ 4 ]

5 голосов
/ 14 февраля 2011

Я знаю только о git ls-remote для поиска доступных тегов и веток и их последних идентификаторов коммитов. Вы можете использовать это, чтобы проверить, был ли сделан новый коммит в ветке.

2 голосов
/ 14 февраля 2011

Вы могли бы , вероятно, сделать это, эмулируя большую часть операций, которые git уже выполняет внутри, и интенсивно используя команды git plumbing (low-level).Однако, если вы сделаете это, вам не только понадобится много действительно низкоуровневых вещей, вы также получите очень мало эффективности в том, что вы делаете (не только если вы запрашиваете информацию во второй раз).

Так что я бы предложил вам сделать (высокоуровневый) клон из репозитория и работать с ним таким образом, даже если этот репозиторий будет существовать только временно.Например, если вы хотите посмотреть только самые новые коммиты, вы можете легко ограничить то, что вы клонируете, создав клон shallow (используйте опцию --depth с клоном).

1 голос
/ 14 февраля 2011

Вы можете использовать удаленное выполнение команд ssh для выполнения произвольных команд git

$ ssh user @ host "путь к cd / в / repo && git log"

0 голосов
/ 15 октября 2015

Вы также можете использовать API хоста хранилища, если у вас хостинг с Github , Bitbucket или подобным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...