読者です 読者をやめる 読者になる 読者になる

GitHub for Windows Shell が凄い便利

Git PowerShell

GitHub for Windows からインストール出来ます。GUI でも操作出来るんですが、コマンドに対応した操作が良くわからないので shell を使ってます。
shell は PowerShell です。なので bash に慣れていない Windows ユーザーにも安心ですね。
で、この PowerShell かなり便利です。日本語の入出力も無問題!*1また入力補完がかなり強力です。
git のコマンド補完は当然ですが、コマンドに対応したファイルも補完してくれます。
例えば、git add の後に {tab} を押すと、git add 出来るファイルが次々と出てきます。これは msysgit の GitBush では無かったはずです。


と、ここまでは良いことずくめなんですが一つ問題が。この ファイルの入力補完ですが パスに日本語があると化けます。
順に見ていきましょう。


まずは、リポジトリを作成してファイルを追加します。core.quotepath が true なので日本語はちゃんと表示されません。

d:\work> git init Test
d:\work> cd Test
d:\work\Test> date >> a.txt
d:\work\Test> date >> あいうえお.txt
d:\work\Test> git status
d:\work\Test> git add {tab}


core.quotepath に false を設定して、日本語を表示出来るようにしてみます。

d:\work\Test> git config core.quotepath false
d:\work\Test> git status
d:\work\Test> git add {tab}


文字化けしてしまいますね。。
当然 PowerShell のコマンドレットに対する補完は化けません。

d:\work\Test> Get-Content {tab}


サポートに投げたら、Font を変えてみたらと言われたんですが、解決せず。
しかし、回避方法を見つけました!

d:\work\Test> chcp 65001
d:\work\Test> git add {tab}


これで、日本語が化けずに表示されます。
残念ながら、コードページの変更はなぜか「カレントが git repository にある場合」は次のコマンドに対してしか効きません。*2
毎回 chcp65001 を叩く必要があります。git repository に入ると shell の表示がちらちら切り替わりますしどこかしらの既定の設定を取得しているんでしょうかねー。


まあそれでも便利なツールですし、GitHub を使わなくてもこのツールは使えるのでおすすめです。

*1:msysgit だと日本語の入力に難有…

*2:通常の cmd や PowerShell では、永続的に効く