Флаг --abbrev-commit
может использоваться совместно с git log
и git rev-list
, чтобы показать частичные префиксы вместо полных 40-символьных SHA-1 хэшей объектов фиксации. Согласно Pro Git book,
он по умолчанию использует семь символов, но делает их дольше, если необходимо, чтобы сохранить SHA-1 однозначным [...]
Кроме того, короткие SHA имеют длину не менее 4 символов. Тем не менее, согласно книге Pro Git,
Как правило, от восьми до десяти символов более чем достаточно, чтобы быть уникальным в рамках проекта.
В качестве примера ядро Linux, представляющее собой довольно большой проект с более чем 450 тыс. транзакциями и 3,6 миллиона объектов, не имеет двух объектов, SHA-1 которых перекрываются больше, чем первые 11 символов.
Поскольку длина самого длинного префикса, необходимого для предотвращения любого перекрытия между всеми префиксными хешами объектов фиксации (11, в случае ядра Linux), является грубым индикатором размера репо, я хотел бы программно определить соответствующее количество в моем собственном локальном репозитории. Как я могу это сделать?