Windows 7でgit-bash
を使用してファイルの権限を更新するにはどうすればよいですか?
私は成功せずに以下を試しました:
$ 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
WindowsでNTFSまたはFAT32を使用している可能性があり、それらのファイルシステムは実行可能権限をサポートしていません。代わりに、 cygwinはファイル名と内容を調べて、それが実行可能かどうかを判断します :
ファイル名が.bat、.com、または.exeで終わる場合、またはそのコンテンツが#!で始まる場合、ファイルは実行可能であると見なされます。
したがって、bashファイルが Shebang で始まることを確認する必要があります(例:#!/bin/bash
)。そうすれば、ls
のパーミッション出力を無視して、ファイルを実行できるようになります。
ローカルでの実行が許可されている場合でも、LinuxファイルシステムにデプロイされているWindows環境でスクリプトを更新する場合は、プッシュする前に実行を許可する必要がある場合があります。
この記事の Windowsでgit repoを使用するときにファイルのアクセス許可を変更する :
.sh
ファイルに移動します次のコマンドで既存の権限を確認します。
git ls-files --stage
100644のようなものを返すはずです
次のコマンドで権限を更新します
git update-index --chmod=+x 'name-of-Shell-script'
ファイルの権限をもう一度確認してください
git ls-files --stage
100755のようなものを返すはずです
変更をコミットしてプッシュ!