2016-07-11 1 views
1

Некоторое время назад я работал в проекте, разработанном несколькими людьми. Один из людей, сознательно или нет, изменил chmod на некоторые файлы. Когда изменения вставляются в репозиторий, каждый раз, другая загрузка кода оттуда вызывает в начале, многие файлы были отмечены как «измененные». Я потерял много времени, чтобы найти причину.Git repo default игнорировать права доступа к файлам

Теперь при принятии репо я каждый раз, когда запись в терминале

git config core.fileMode false 

игнорировать разрешения изменения файла. Я знаю, что могу установить это в глобальном файле конфигурации git, но я бы сделал что-то еще. Я хотел бы, чтобы эта опция была задана по умолчанию в репозитории проекта, и всем, кто загружает это репо, будет установлен git config, чтобы игнорировать разрешения на файлы.

Подумайте, как достичь этого?

ответ

1

Git игнорирует все биты разрешений, отличные от исполняемого бита (Другими словами, записи в файле и каталоге объектов дерева git имеют маску разрешений 755 или 644 - ничего больше). core.fileMode относится только к исполняемому биту. Обычно вам требуются исполняемые биты, за исключением некоторых странных файловых систем, и в этом случае пользователь должен сам выключить core.fileMode.

С мерзавца помощью конфигурации:

core.fileMode Сообщает Git, если исполняемый бит файлов в рабочем дереве должны быть выполнены.

 Some filesystems lose the executable bit when a file that is marked as executable is checked 
     out, or checks out an non-executable file with executable bit on. git-clone(1) or git-init(1) 
     probe the filesystem to see if it handles the executable bit correctly and this variable is 
     automatically set as necessary. 

     A repository, however, may be on a filesystem that handles the filemode correctly, and this 
     variable is set to true when created, but later may be made accessible from another environment 
     that loses the filemode (e.g. exporting ext4 via CIFS mount, visiting a Cygwin created 
     repository with Git for Windows or Eclipse). In such a case it may be necessary to set this 
     variable to false. See git-update-index(1). 

     The default is true (when core.filemode is not specified in the config file). 
Смежные вопросы