Почему git создает файлы только для чтения (444)? - PullRequest
12 голосов
/ 29 июля 2011

Используя общее хранилище (core.sharedRepository = group), мы столкнулись с некоторыми проблемами при создании git файлов, доступных только для чтения (permissions 444).Независимо от того, какие элементы конфигурации git я переворачиваю, всегда есть какие-то метаданные только для чтения, созданные на стороне сервера, когда мы нажимаем.Эти файлы находятся в .git / (или объектах / в голом репо).

Вам действительно никогда не нужно снова записывать эти файлы (независимо от того, какие операции git вы выполняете)?Они могут быть репрезентативными для дельты коммитов, поэтому действительно не должны быть изменены, но я надеялся, что кто-то может прояснить это.

Для любознательных соответствующие строки выглядят как 856 и 867 встроенного / индексного пакета.с в мерзавце.

1 Ответ

16 голосов
/ 29 июля 2011

Эти файлы являются частью объектной базы данных, которая действительно доступна только для чтения.Независимо от того, что вы делаете с Git, вы не можете изменить содержимое определенного объекта после его создания.

Обратите внимание, что если вы отмените коммит и создадите новыйна его месте вы будете создавать новый объект с новым идентификатором и новым содержимым.Git в конечном итоге выполнит свою сборку мусора, чтобы удалить старые объекты, на которые нет ссылок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...