Ответ 1
попробуйте эту команду
git log --format="%H" -n 1
Я хочу получить последний идентификатор фиксации удаленного git репо.
Команда git rev-parse HEAD
работает для локально-клонированного репозитория git, но я хочу получить его из исходного репозитория git командой CURL или так.
Например: я хочу получить последний идентификатор фиксации git URL https://git.appfactorypreview.wso2.com/history/apiapp.git/.
Как?
попробуйте эту команду
git log --format="%H" -n 1
Я думаю, что вы хотите:
git ls-remote $URL HEAD
Если HEAD
не существует в удаленном репозитории, вы, вероятно, захотите:
git ls-remote $URL refs/heads/master
Обратите внимание, что в первом случае HEAD
будет указывать на ветку по умолчанию для проверки в репозитории. Вы должны быть уверены, что хотите использовать ветку или просто использовать вторую форму и указать тот, который вы хотите (замените refs/heads/master
на название нужной ветки: refs/heads/BRANCH_NAME
.
Вы можете использовать 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
Другой способ, без использования git log:
git rev-parse HEAD
мой ответ не помог бы 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
, но он содержит намного больше информации.
Самый простой способ, которым я пользуюсь:
git rev-parse origin/develop