Подтвердить что ты не робот

Как получить последний идентификатор фиксации удаленного репо с помощью curl-подобной команды?

Я хочу получить последний идентификатор фиксации удаленного git репо.

Команда git rev-parse HEAD работает для локально-клонированного репозитория git, но я хочу получить его из исходного репозитория git командой CURL или так.

Например: я хочу получить последний идентификатор фиксации git URL https://git.appfactorypreview.wso2.com/history/apiapp.git/.

Как?

4b9b3361

Ответ 1

попробуйте эту команду

git log --format="%H" -n 1

Ответ 2

Я думаю, что вы хотите:

git ls-remote $URL HEAD

Если HEAD не существует в удаленном репозитории, вы, вероятно, захотите:

git ls-remote $URL refs/heads/master

Обратите внимание, что в первом случае HEAD будет указывать на ветку по умолчанию для проверки в репозитории. Вы должны быть уверены, что хотите использовать ветку или просто использовать вторую форму и указать тот, который вы хотите (замените refs/heads/master на название нужной ветки: refs/heads/BRANCH_NAME.

Ответ 3

Вы можете использовать git ls-remote для этого. Поскольку я получаю 'Unauthorized access for repository apiapp.git', я использую в качестве примера torvalds linux-repo.

$ git ls-remote --heads git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
6d15ee492809d38bd62237b6d0f6a81d4dd12d15        refs/heads/master

Ответ 4

Другой способ, без использования git log:

git rev-parse HEAD

Ответ 5

мой ответ не помог бы OP, потому что он не на github, но я думаю, что я бы упомянул об этом так или иначе, потому что он использовал curl или wget, как запросил OP.

wget -qO- http://api.github.com/repos/Ghini/ghini.desktop/commits/ghini-1.0

Ghini - это мое репо, ghini.desktop - это мой репозиторий, ghini-1.0 - это ветвь, в которой я заинтересован. Замените их в соответствии с вашим случаем.

ответ JSON - это словарь, и OP интересовался его полем sha, но он содержит намного больше информации.

Ответ 6

Самый простой способ, которым я пользуюсь:

git rev-parse origin/develop