2015-10-26 3 views
1

Мне нужно установить разрешение script.sh на 755. ТакРазрешение на изменение git не удалось сохранить до следующего фиксации

git add -A 
git update-index --chmod=+x script.sh 
git commit -m 'first commit' 

Таким образом, файл будет совершаться с разрешения 755 и мой удаленный VM может выполнять эти сценарии.

Однако, в следующий раз, когда я что-то сделаю с репо и сделаю изменения, разрешение этих сценариев вернется к 644. Сообщение

[master 171c0cc] second 
2 files changed, 1 insertion(+) 
mode change 100755 => 100644 script.sh 

Кто-нибудь знает, что может случиться здесь? Как мне избавиться от этого?

+0

Индекс обновления не изменяет разрешения локального файла. Просто используйте обычный unix chmod. –

ответ

1

Сначала проверьте свой git config core.fileMode: если он установлен в false, исполняемый бит файлов в рабочем дереве в любом случае не будет соблюден.

Если это правда или не установлено, то try a chmod.

Тогда попробуйте также set core.sharedRepository to group.
И проверьте свой umask. umask 002 в вашем случае должен работать.

+0

прямо сейчас 'core.fileMode' - это правда. umask - 002. Я обновил режим файла до 755 и зафиксировал изменения. Но в следующий раз я делаю «git add -A», все режимы файлов изменились на 644. –

+0

Будет ли репозиторий core.shared (что я упомянул в ответе) что-нибудь изменит? – VonC

+0

Я установил 'core.shareRepository' в' group', как вы и предполагали, но результаты кажутся одинаковыми. –

Смежные вопросы