Обновление разрешений файлов с помощью git - bash в Windows 7
Как обновить права доступа к файлам с помощью git-bash
в Windows 7?
Я пробовал следующее без успеха:
$ ls -al scripts/script.sh
-rw-r--r-- 1 myUid Administ 70 Sep 8 11:24 scripts/script.sh
$ git update-index --chmod=+x scripts/script.sh
$ ls -al scripts/script.sh
-rw-r--r-- 1 myUid Administ 70 Sep 8 11:24 scripts/script.sh
$ chmod +x scripts/script.sh
$ ls -al scripts/script.sh
-rw-r--r-- 1 myUid Administ 70 Sep 8 11:24 scripts/script.sh
Ответы
Ответ 1
Вероятно, вы используете NTFS или FAT32 в Windows, и эти файловые системы не поддерживают разрешение на выполнение. Вместо этого cygwin просматривает имя и содержимое файла, чтобы определить, является ли он исполняемым:
Файлы считаются исполняемыми, если имя файла заканчивается на .bat,.com или .exe или если его содержимое начинается С#!.
Итак, вы должны убедиться, что файл bash начинается с shebang (например, #!/bin/bash
). Затем вы сможете просто выполнить файл, не считая вывода разрешения ls
.
Ответ 2
Если вы обновляете сценарии в среде Windows, которые развертываются в файловой системе Linux, даже если им разрешено работать локально, вам все равно может потребоваться предоставить команду execute до нажатия.
Из этой статьи Измените права доступа к файлам при работе с git repo в Windows:
- Откройте терминал bash, например, git-bash в Windows
- Перейдите к файлу
.sh
, где вы хотите предоставить разрешения на выполнение
Проверьте существующие разрешения с помощью следующей команды:
git ls-files --stage
Который должен возвращать что-то вроде 100644
Обновите разрешения с помощью следующей команды
git update-index --chmod=+x 'name-of-shell-script'
Проверьте разрешение файла еще раз
git ls-files --stage
Который должен вернуть что-то вроде 100755
Внесите изменения и нажмите!
![git bash on windows]()