Windows 上の Git でファイル実行モード権限を作成するにはどうすればいいですか? 質問する

Windows 上の Git でファイル実行モード権限を作成するにはどうすればいいですか? 質問する

Windows で Git を使用しており、実行可能なシェル スクリプトを 1 回のコミットで Git リポジトリにプッシュしたいと考えています。

通常は 2 つの手順 ( git commit) を実行する必要があります。

$ vi install.sh
$ git add install.sh  
$ git commit -am "add new file for installation" # first commit
[master f2e92da] add support for install.sh
 1 files changed, 18 insertions(+), 3 deletions(-)
 create mode 100644 install.sh
$ git update-index --chmod=+x install.sh
$ git commit -am "update file permission"        # second commit
[master 317ba0c] update file permission
  0 files changed
  mode change 100644 => 100755 install.sh

これら 2 つの手順を 1 つの手順に組み合わせるにはどうすればよいですか? Git 構成ですか? Windows コマンドですか?

参照: 質問を参照Windows での Git ファイルの権限2回目のコミット

ベストアンサー1

これを 2 つのコミットで行う必要はなく、1 つのコミットでファイルを追加して実行可能にマークすることができます。

C:\Temp\TestRepo>touch foo.sh

C:\Temp\TestRepo>git add foo.sh

C:\Temp\TestRepo>git ls-files --stage
100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0       foo.sh

ご指摘のとおり、追加後のモードは 0644 (つまり、実行不可) です。ただし、コミットする前に実行可能としてマークすることができます。

C:\Temp\TestRepo>git update-index --chmod=+x foo.sh

C:\Temp\TestRepo>git ls-files --stage
100755 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0       foo.sh

そして、ファイルのモードは 0755 (実行可能) になりました。

C:\Temp\TestRepo>git commit -m"Executable!"
[master (root-commit) 1f7a57a] Executable!
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100755 foo.sh

これで、単一の実行可能ファイルを含む単一のコミットができました。

おすすめ記事