GItHubリポジトリ上の.shに実行権限をつけたい

GItHub Codespaces用にdotfileリポジトリ+ install.sh を作成の際に、こういう仕様があることを知らず困ったのでメモ。

やりたいこと

  • GitHubリポジトリ上の .sh ファイルに実行権限(x)を付与し、 git clone 直後に実行できる状態にしたい

実現方法

  • 以下のいずれかの方法で実現できる
    • git update-index --chmod=+x path/to/file
    • git add --chmod=+x path/to/file

背景知識

  • git add したファイルは、GitHubのInternal Storage上で通常、 10644 で管理される。
    • 例外的に、上記の操作を行った場合、 10755 として登録される。
  • git ls-files --stage にて確認することができる。
$ git ls-files --stage
100644 8f8a948b9c6321e1be1982a77ad5d5c879f7a60b 0       .bashrc
100644 f981c6ac7684e2bd5178a803c85097deca4372c9 0       README.md
100755 afad65e82e2ad9450ccdd73276605ecf367ddcc5 0       install.sh

出展

/* https://sunrise033.com/entry/hatena-blog-how-to-hierarchicalize-categories */