Git вообще не хранит групповые разрешения. 1 Файлы имеют либо mode 100644
, что означает rw-
, либо mode 100755
, что означает, что они rwx
.
Строки режима 100644
и 100755
соответственно означают rw-r--r--
и rwxr-xr-x
соответственно при использовании в качестве Unix режимов. Изначально они были Unix (или Linux) режимами, но они уже давно, совсем недавно, едва ли кто-нибудь, кроме Линуса, использовал Git.
Вместо этого, когда Git создает файл самостоятельно, он использует аргумент mode
либо 0666
(rw-rw-rw-
), либо 0777
(rwxrwxrwx
). Операционная система вашего компьютера затем обрабатывает некоторые из этих битов режима, основываясь на вашей личной настройке umask . Этот персональный параметр настраивается для каждого процесса и обычно является чем-то, что вы манипулируете в своей оболочке.
стандартные биты откола обычно равны ----w--w-
, то есть rwxrwxrwx
становится rwxr-xr-x
, Это достигается с помощью параметра umask
022
.
Чтобы указать вашей оболочке на создание новых процессов с битами отсечки, установленными на -------w-
, используйте umask 002
. (Вы можете не указывать начальные нули, если хотите; я хотел бы сохранить их для ясности.)
Изменение на 664
кажется странным, но, возможно, вы делаете это в оболочке с набором umask на 002
и выполнение проверок, которые оставляют вас с 644
в оболочке с установленным по умолчанию значением umask 022
.
1 В случае общий bare репозиторий, есть определенные свойства групповых разрешений, которые применяются. Но это не то, что здесь происходит.