2013-11-27 3 views
0

У меня есть хранилище HELPER и около 350 тегов, созданных на нем. Я нахожусь на ветке «master» и хочу проверить тег для цели только для чтения.Тестовый тег GIT указывает на неправильный sha1

Когда я делаю checkout, он говорит, что указывает на некоторый sha1 id, который не является sha1 этого тега.

вот фрагмент кода,

bash-4.1$ git checkout **HELPER_F62.3.REL** 

HEAD is now at **7e04dfb**... *HELPER_OS4.1.35* 

bash-4.1$ git show-ref **HELPER_F62.3.REL** 

**d722076d24ec9d13d845094181f47801ca77b4ca** refs/tags/HELPER_F62.3.REL 

bash-4.1$ git show-ref HELPER_OS4.1.35 

2782a48d2044b0fc0aa60ecf2823967a2312e1dd refs/tags/HELPER_OS4.1.35 

Я не хочу, чтобы создать новую ветку, и я хорошо с отсоединенной головой, как я использую этот репозиторий как репозиторий только для чтения.

В настоящее время на мерзавец версию 1.8.0-rc0

+0

У вас есть ветвь с тем же именем? Я видел эту проблему несколько раз в прошлом, и это было столкновение имен между именем тега и именем ветки. Можете ли вы опубликовать вывод 'git ls-remote .'? – jszakmeister

ответ

2

Я подозреваю, что у вас есть аннотированный тег. Когда вы используете git checkout для отсоединения HEAD и получите соответствующую фиксацию, вы увидите идентификатор commit, а не идентификатор аннотированного тега.

Вы можете видеть это, например, git show-ref --deref:

$ git show-ref --deref master annotag 
a430f6d91b98d382b8d96f6812fc2056a6e6f678 refs/heads/master 
20e14672ee2253d38c1001179d8f17688d47059c refs/tags/annotag 
a430f6d91b98d382b8d96f6812fc2056a6e6f678 refs/tags/annotag^{} 

показывает, что филиал master (который я с тегами git tag -a annotag создать аннотированный тег), где annotag решает, как де-ссылки, даже если annotag точки к отдельному git-объекту.

(Lightweight теги прямо указывают на зафиксируется, и не меняются при --deref.)

+0

Все теги в репо легки. Заметил, что в этом репо есть только 5 коммитов, когда я делаю 'git log'. При выполнении 'gitk' из окон он показывает все теги, прикрепленные к этим 5 коммитам. Не знаю, как это произошло. Кроме того, я все еще озадачен тем, как git показывает другой идентификатор sha1 для тега. – Raviraj

+0

Хорошо, это озадачивает. Что относительно 'git log --graph --decorate --oneline --all', вы получаете от этого что-то более разумное? – torek

Смежные вопросы