git ignore filemode config не работает
Я использую gitolite git server на сервере ubuntu linux. Я использовал крюк, который будет вызываться при каждом толчке и обновит каталог сервера (который включает исходный код сайта live).
Теперь всякий раз, когда я изменяю что-то на своем локальном компьютере и отправляю изменения на сервер, вызывается крюк, и запрос pull выполняется нормально. Но проблема в том, что файлы, которые были обновлены, теперь имеют измененное разрешение. Например:
rwxrwxr_x (before)
rwx_____x (After)
После нескольких поисков я действительно придумал это решение. Я попробовал это сделать как с моей глобальной конфигурацией git, так и с конкретными настройками конфигурации репозитория. после установки конфигурации, всякий раз, когда я пытаюсь нажать с моего локального компьютера, та же проблема происходит снова, как выше, таким образом, кажется, по какой-то причине, решение не работает.
Есть ли у кого-нибудь идея, что может быть причиной plz? Должен ли я делать что-нибудь дополнительно, кроме настроек конфигурации? Любые предложения приветствуются. Заранее спасибо.
1 ответ:
КакОП рана подтверждает в комментариях, если крюк начинается с:
umask 002
Он будет генерировать файлы с правильной защитой.
Алан Томпсон упоминает:
core.filemode
влияет только на диффы против вашего рабочего dir, а не на диффы между 2 коммитами в репо.
Таким образом, если вы уже зафиксировали различные режимы файлов, вам придется использоватьfilter-branch
, как в "Могу ли я сделать git diff игнорировать разрешение изменения ".git filter-branch -f --tree-filter 'find * -type f | xargs chmod 644 ' -- --all