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
- это команда, которую вы хотите.