Из файла Git index-format.txt
относительно режима:
32-bit mode, split into (high to low bits)
4-bit object type
valid values in binary are 1000 (regular file), 1010 (symbolic link)
and 1110 (gitlink)
3-bit unused
9-bit unix permission. Only 0755 and 0644 are valid for regular files.
Symbolic links and gitlinks have value 0 in this field.
Кроме того, тип объекта каталога (двоичный код 0100) и обычный файл с возможностью групповой записи (разрешения 0664) разрешены, как указано методом fsck.c
fsck_tree
. Обычный неисполняемый файл с возможностью записи в группы - это нестандартный режим, который поддерживался в более ранних версиях Git.
Это делает действительные режимы (как двоичные, так и восьмеричные):
0100000000000000
(040000
): Справочник
1000000110100100
(100644
): обычный неисполняемый файл
1000000110110100
(100664
): обычный неисполняемый файл с возможностью групповой записи
1000000111101101
(100755
): обычный исполняемый файл
1010000000000000
(120000
): символическая ссылка
1110000000000000
(160000
): Gitlink