git SHA1 00000000000000000000000000000000000000000 (все нули), это нормально?

У меня есть еще незафиксированная ветка в git с SHA1 000000000000000000000000000000000000000000 (все нули), это нормально или я повредил репозиторий git?

Пожалуйста, не отвечайте, да, есть один из 2 ^ 160, или 0,000000000000000000000000000000000000000000000000006842277657836021% вероятности наличия этого SHA1.

Я в достаточной безопасности. Я не тот счастливчик, который получил SHA1 00000000000000000000000000000000000000000 в своем репозитории git.


person dendini    schedule 24.09.2013    source источник
comment
Что такое незафиксированная ветвь? Какая операция git дает это значение?   -  person SzG    schedule 24.09.2013
comment
Возможно, связано с stackoverflow. ком/вопросы/1902340/   -  person Fredrik Pihl    schedule 24.09.2013
comment
вы думали о майнинге биткойнов?   -  person necromancer    schedule 24.09.2013
comment
Хотя было бы круто, если бы ты был.   -  person troelskn    schedule 24.09.2013
comment
возможно это просто указание на то, что там пока нет ни одного коммита   -  person mvp    schedule 24.09.2013
comment
Git использует все нули как нулевой SHA1, который еще ничего не значит. Большинство вещей не покажет вам значение со всеми нулями, что вы сделали, что делает? (Хуки видят это, поскольку для этой ссылки нет предыдущей версии; также для ссылки удалено.)   -  person torek    schedule 24.09.2013
comment
@torek Теперь я вспомнил. Я видел этот хэш раньше, когда программировал хук после получения :-)   -  person SzG    schedule 24.09.2013
comment
@ Fredrik Pihl, вы разместили именно ту ветку, которую я не хотел придумывать @ no_answer_not_upvoted ахах, хороший момент @ SzG Я открываю gitk, чтобы увидеть текущую историю, и для измененной, но незафиксированной ветки он показывает SHA1 000000 .. git log не не показывать текущую ветку SHA1, хотя   -  person dendini    schedule 24.09.2013


Ответы (2)


Коммит включает, среди прочих метаданных, дату фиксации. Таким образом, хэш коммита не может отображаться до тех пор, пока коммит не будет фактически создан. То, что вы видите, не является SHA фиксации, это просто значение по умолчанию, используемое в пользовательском интерфейсе.

person Mat    schedule 24.09.2013

Обратите внимание, что вы можете найти SHA1 со всеми нулями вплоть до commit f65fdf (июнь 30 февраля 2005 г., версия 0.99 git)

Линус Торвальдс:

Старая ссылка, состоящая из всех нулей, считается неважной ссылкой и позволяет нам написать новую ссылку независимо от того, что содержала старая ссылка (или даже если она вообще существовала).

Это позволяет (если бы это делал git-send-pack) создавать новые ссылки и исправлять старые.


Как упоминал SzG, all-zeroes-is-this-normal#comment28031047_18977462">в комментариях, это тип SHA1, который вы найдете в Git получает/обновляет хуки и новые ветки, представляющие старую ссылку для несуществующего объекта (в то время как новая ссылка создает указанный объект, как ветку).

person VonC    schedule 24.09.2013