Вопрос:

Обновление и фиксация только прав доступа к файлу с помощью контроля версий git

git

126950 просмотра

3 ответа

3970 Репутация автора

Просто превратил some.shфайл в исполняемый файл ( chmod 755 ...), разрешения были обновлены, но не содержимое. Есть ли способ зафиксировать файл в git, чтобы исполняемый бит был восстановлен / установлен в clone / checkout / pull ?

Обновление: как я могу отследить, что новые разрешения были отправлены github?

Автор: BreakPhreak Источник Размещён: 09.05.2012 12:34

Ответы (3)


160 плюса

2760 Репутация автора

Решение

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

Если вы не видите никаких изменений при изменении прав на выполнение, у вас, вероятно, есть конфигурация в git, которая игнорирует режим файла.

Загляните в свой проект, в .gitпапку для configфайла, и вы должны увидеть что-то вроде этого:

[core]
    filemode = false

Вы можете изменить его на trueваш любимый текстовый редактор или запустить:

git config core.filemode true

Тогда вы сможете нормально фиксировать ваши файлы. Это только передаст изменения разрешения.

Автор: Vincent B. Размещён: 09.05.2012 12:45

24 плюса

441 Репутация автора

Не работает для меня

Режим верный, права доступа к файлам были изменены, но git говорит, что делать нечего.

git init
git add dir/file
chmod 440 dir/file
git commit -a

Кажется, проблема в том, что git распознает только определенные изменения прав доступа.

Автор: Otheus Размещён: 26.06.2013 06:38

137 плюса

12595 Репутация автора

@fooMonster статья работала на меня

# git ls-tree HEAD
100644 blob 55c0287d4ef21f15b97eb1f107451b88b479bffe    script.sh

Как видите, файл имеет разрешение 644 (без учета 100). Мы хотели бы изменить его на 755:

# git update-index --chmod=+x script.sh

зафиксировать изменения

# git commit -m "Changing file permissions"
[master 77b171e] Changing file permissions
0 files changed, 0 insertions(+), 0 deletions(-)
mode change 100644 => 100755 script.sh
Автор: ewwink Размещён: 12.01.2014 04:39
Вопросы из категории :
32x32