Из документации неясно, даже выводит ли он больше или меньше Unreachable items .
git fsck --unreachable --cache
@мат, да. в git «объекты» используются для вызова .git\objects\<<..>>\<<_>>
(и других) элементов. «записано» может означать, что некоторые «объекты» кэшируются в индексе и что они там упоминаются. и вдобавок к этому «для следа недостижимости» может означать использование их для поиска способов достижения и проверки того, являются ли они достижимыми. предложение этого документа скорее ошибочно, чем полезно, поэтому вопрос в том, знает ли кто-нибудь, что оно на самом деле означает?
«Кэш» — это, по сути, еще один синоним индекса или промежуточной области.
От git help fsck
:
--cache
Consider any object recorded in the index also as a head node for
an unreachability trace.
См. git diff --cached
, который показывает разницу между текущим коммитом и поэтапными изменениями, а не текущим коммитом и текущим рабочим каталогом.
я знаю, что это связано с индексом, см. мой комментарий к комментарию @matt.
Вы вообще понимаете, что такое индекс?
это git-представление состояния рабочего дерева, возможно, включает поэтапные изменения. насколько я знаю .
Правильно: это в основном виртуальная ветвь, и объекты могут быть доступны из индекса так же, как они доступны из любой другой ветки. По умолчанию fsck
не считает что-то достижимым только из индекса.
так что --cache
делает больше объектов доступными (меньше объектов выводится с помощью --unreachable
)? именно то, о чем я беспокоился.
Я бы назвал индекс скорее «виртуальной фиксацией», чем «виртуальной ветвью», но это одно и то же.
@torek Справедливое замечание. Формулировка «головной узел» натолкнула меня на мысль о голове ветки, но вы правы, поскольку индекс — это, по сути, то, что станет следующей фиксацией.
«Считайте любой объект, записанный в индексе, также головным узлом для трассировки недостижимости». Вопрос "что это значит"?