Вопрос по git, gitolite, ubuntu, file-permissions, githooks – Git игнорировать конфигурацию файлового режима не работает

3

Я использую Gitolite Git Server на сервере Linux Ubuntu. Я использовал хук, который будет вызываться при каждом нажатии и будет обновлять серверкаталог s (который включает живой сайт 'с исходным кодом).

Теперь, когда я что-то изменяю на своем локальном компьютере и отправляю изменения на сервер, вызывается ловушка, и запрос на получение выполняется нормально. Но проблема в том, что файлы, которые были обновлены, теперь изменили разрешение. Подобно:

rwxrwxr_x (before)
rwx_____x (After)

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

У кого-нибудь есть идеи, в чем может быть причина плз? Нужно ли что-то делать дополнительно, кроме настроек конфига? Любые предложения приветствуются. Заранее спасибо.

Большое спасибо. Кажется, это работает :). Rana
Отлично, я добавил ответ, чтобы отразить это решение VonC
Убедитесь, что ваш крюк начинается с Umask 002 VonC

Ваш Ответ

1   ответ
4

КакОП Рана подтверждаетв комментариях, если хук начинается с:

umask 002

Он будет генерировать файлы с правильной защитой.

Алан Томпсон отмечает:

core.filemode Влияет только на дифференциалы против вашего рабочего каталога, а не на дифференциалы между 2 коммитами в репо.

Итак, если вы уже зафиксировали различные режимы файлов, выпридется использоватьfilter-branch, как в "Могу ли я сделать git diff игнорировать изменения прав доступа ".

git filter-branch -f --tree-filter 'find * -type f | xargs chmod 644 ' -- --all

Похожие вопросы