Git необъяснимо меняет права доступа к одному файлу

Я единственный человек, связанный с этим проектом Git. Каждый раз, когда я редактирую файлы в своем локальном репозитории Ubuntu, затем отправляю их в Bitbucket и извлекаю в производственный репозиторий, git изменяет отредактированные файлы на -rwxrwxr-x 775. Apache не делает 'не нравится это

Локальная система: git версия 1.8.1.2 в Ubuntu Linux

Производственная система: версия git 1.7.12 для CentOS / Red Hat Linux

Когда я фиксирую разрешения на 755, то делаю

git diff

или же

git diff -p

Ничего не показывает

В моем локальном репозитории разрешения 755, и все файлы принадлежат haws. В моем производственном репозитории все остальные разрешения остаются на уровне 755, и все файлы, включая contact.php, принадлежат моему имени пользователя.

Как в локальном, так и в производственном репозитории я изменил core.filemode следующим образом, пытаясь остановить это поведение.

core.filemode = false

У нас были такие загадки в совместных проектах, поэтому яочень хотелось бы понять, чтопроисходит

Что я могу сделать, чтобы увидеть Git 's причина изменения прав доступа к этому файлу?Как я могу заставить git перестать менять его?

Я также попытался найти решение здесь:Запретить Git изменять права доступа при извлечении но безрезультатно.

Мое окончательное решение (спасибо VonC 'руководство):

Благодаря VonC 'хорошее объяснение, я был достаточно смел, чтобы понять, что каждый раз, когда я заходил на свой сервер, мой umask возвращался к 0002. Поэтому я создал скрипт запуска пользователя (.bashrc или, в моем случае, .bash_profile) на моем хосте Linux это устанавливает

Umask 0022

или используя символическую запись (для небольшой добавленной стоимости)

umask u=a,g-w,o-w 

или же

umask u=a,go-w 

(Разрешить все разрешения для пользователя, запретить права на запись для группы и других)

Это решило мою проблему.

Ранее я установил в git config core.sharedRepository значение true, но это не моя проблема, и я удалил этот параметр, как только проблема была решена.

Ответы на вопрос(1)

Ваш ответ на вопрос