Извлечь идентификатор последней ревизии по URL-адресу Git-репо? - PullRequest
0 голосов
/ 25 февраля 2019

Так что я знаю, что можно получить идентификатор ревизии из командной строки, находясь в репозитории Git:

git rev-list HEAD | head -n1

Есть ли что-нибудь, что позволило бы вам сделать что-то вроде следующего:

git rev-list HEAD git@some.path.to.your.repo:user/repo.git | head -n1

Или вам нужно было бы специально клонировать репо и находиться в этом каталоге в терминале, чтобы получить эту информацию?

Спасибо.

1 Ответ

0 голосов
/ 25 февраля 2019

git rev-parse HEAD проще и выдает тот же ответ, но он дает вам хэш-идентификатор текущей версии, не обязательно последней версии.В частности, когда вы извлекаете какую-то ветку, HEAD называет кончик этой ветви - который по определению является последним коммитом в этой ветке - но если вы извлекаете исторический коммит, вы в конечном итоге переходите в режим «detached HEAD»,и HEAD теперь называет этот исторический коммит.Таким образом, вы получаете a (не обязательно * ) последнюю версию, если вы находитесь в какой-то ветви: вы получаете идентификатор хеша последней версии этой ветви.

При этом сказано:вы можете использовать git ls-remote, чтобы попросить любой Git-сервер сообщить вам, что он сначала скажет вашему Git-репозиторию (для git fetch целей), если вы подключили к нему Git:

git ls-remote ssh://git@github.com/path/to/repo.git

Обратите внимание, что git clone состоит из создания нового репозитория, добавления пары удаленное имя / URL, выборки веток и тегов, а затем проверки некоторой ветки.Поэтому, если вы перейдете прямо к шагу «извлечения», а затем обрежете его после того, как вам сообщат, какие имена ветвей и тегов у них и какие хэш-идентификаторы для этих веток и тегов, вы получитеответ вы хотели.Итак, git ls-remote - это команда, которую вы хотите.

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