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, но это не моя проблема, и я удалил этот параметр, как только проблема была решена.