#git #hash #github
#git #хэш #github
Вопрос:
На следующей странице приведен короткий хэш 89b734fd24
фиксации, соответствующей тегу 1.1.1
: https://github.com/jezdez/django_compressor/tree/1.1.1
Однако в следующей архивной папке вызывается упакованный каталог jezdez-django_compressor-a66ab32
:https://nodeload.github.com/jezdez/django_compressor/tarball/1.1.1
Как правило, короткий хэш в архивной папке совпадает с хэшем фиксации. Откуда a66ab32
берется?
ОБНОВЛЕНИЕ: Похоже, что кто-то из GitHub только что исправил хэш в архивной папке для тега, и теперь он согласован. По крайней мере, я больше не могу воспроизвести проблему.
UPDATE2: та же проблема возникает сhttps://github.com/stefanfoulis/cmsplugin-filer/tree/0.8.0 , архивная папка содержит stefanfoulis-cmsplugin-filer-f6c10c2
(хэш тега), в то время как хэш фиксации является 3bbbd37
ОБНОВЛЕНИЕ3:
- [22:16] зависит от того, является ли тег легковесным тегом или нет
- [22:16] облегченные теги — это указатели на коммиты, реальные теги имеют свой собственный sha / message / tagger, связанный с ним
- [22:17] смотри также:http://progit.org/book/ch2-6.html
Ответ №1:
Хэш — это идентификатор объекта тега. Сложно найти идентификаторы объектов этих тегов, но это возможно.
$ git show-ref 1.1.1
a66ab32181a6597ec946423f2aecbde9ed113e93 refs/tags/1.1.1
$ git rev-parse 1.1.1
a66ab32181a6597ec946423f2aecbde9ed113e93
$ git show --pretty=raw 1.1.1
tag 1.1.1
Tagger: Jannis Leidel <jannis@leidel.info>
1.1.1 yeah!
commit 89b734fd24c9e172949cac6df29ea591a95f8aa3
tree 042332aaba8b325f9a65697de5c340919cc42f72
parent f226274e4e90c58956753bcd33a406a59e1b419a
parent d683e30dd146bb6db62934a6f561aea27fd84a06
author Jannis Leidel <jannis@leidel.info> 1320241044 0100
committer Jannis Leidel <jannis@leidel.info> 1320241044 0100
Merge branch 'release/1.1.1'
Zip имеет sha фиксации, каталог имеет sha фактического объекта тега.
Ответ №2:
Не вдаваясь в подробности, я бы сказал, что это, вероятно, аннотированный тег, возможно, также подписанный.
Это отдельные объекты и, следовательно, имеют отдельный идентификатор объекта в базе данных объектов git. Тег ссылается на идентификатор фиксации. (изучаю репозиторий, который вы сейчас связали)
Редактировать Вот что происходит:
git show a66ab32
tag 1.1.1
Tagger: Jannis Leidel <jannis@leidel.info>
Date: Wed Nov 2 14:37:24 2011 0100
1.1.1 yeah!
commit 89b734fd24c9e172949cac6df29ea591a95f8aa3
Merge: f226274 d683e30
Author: Jannis Leidel <jannis@leidel.info>
Date: Wed Nov 2 14:37:24 2011 0100
Merge branch 'release/1.1.1'
Чтобы вы могли видеть a66ab32
имена тега, 89b734fd24c9e17 называет соответствующий коммит
Комментарии:
1. Не могли бы вы указать мне, как я могу найти
a66ab32
кроме как в архивной папке?