Os valores mostrados são os modos de arquivo de 16 bits armazenados por git , seguindo o layout dos tipos e modos POSIX :
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.
Esse arquivo não menciona diretórios; eles são representados usando o tipo de objeto 0100.
Cada dígito no valor de seis dígitos está em octal, representando três bits; Portanto, 16 bits precisam de seis dígitos, o primeiro dos quais representa apenas um bit:
Type|---|Perm bits
1000 000 111101101
1 0 0 7 5 5
1000 000 110100100
1 0 0 6 4 4
git não armazena modos arbitrários, apenas um subconjunto dos valores é permitido, dos tipos e modos POSIX habituais (em octal, 12 para um link simbólico, 10 para um arquivo regular, 04 para um diretório) para o qual git adiciona 16 para links git. O modo é anexado, usando quatro dígitos octal. Para arquivos, você só verá 100755 ou 100644 (embora 100664 também seja tecnicamente possível); os diretórios são 040000 (as permissões são ignoradas), os links simbólicos 120000. Os IDs set-user-set-group-id e sticky não são suportados (eles seriam armazenados nos bits não usados).
Veja também esta resposta relacionada .