web-dev-qa-db-ja.com

Windows 7でgit-bashを使用してファイル権限を更新する

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
28
blueberryfields

WindowsでNTFSまたはFAT32を使用している可能性があり、それらのファイルシステムは実行可能権限をサポートしていません。代わりに、 cygwinはファイル名と内容を調べて、それが実行可能かどうかを判断します

ファイル名が.bat、.com、または.exeで終わる場合、またはそのコンテンツが#!で始まる場合、ファイルは実行可能であると見なされます。

したがって、bashファイルが Shebang で始まることを確認する必要があります(例:#!/bin/bash)。そうすれば、lsのパーミッション出力を無視して、ファイルを実行できるようになります。

46
Yogu

ローカルでの実行が許可されている場合でも、LinuxファイルシステムにデプロイされているWindows環境でスクリプトを更新する場合は、プッシュする前に実行を許可する必要がある場合があります。

この記事の Windowsでgit repoを使用するときにファイルのアクセス許可を変更する

  1. Windowsでgit-bashのようなbashターミナルを開く
  2. 実行権限を付与する.shファイルに移動します
  3. 次のコマンドで既存の権限を確認します。

    git ls-files --stage 
    

    100644のようなものを返すはずです

  4. 次のコマンドで権限を更新します

    git update-index --chmod=+x 'name-of-Shell-script'
    
  5. ファイルの権限をもう一度確認してください

    git ls-files --stage 
    

    100755のようなものを返すはずです

  6. 変更をコミットしてプッシュ!

git bash on windows

4
KyleMit