Windows PowerShell 使いは posh git を入れよう
入れるとどう便利になるかって言うと、
GitHub Shell っぽい表示になります。
ブランチ名、コマンド名をTabキーで補完してくれるようにもなります。
なかなか便利。
詳しくは以下をご覧ください。
上の記事ではインストール方法をあまり詳しく説明していないので少し説明。
Posh-Git の配布元の ReadMe でも丁寧に説明してあるので、そちらでもいいかもしれません。
Git Bash(Git for Windows) や GitHub for Windows がすでにインストール済みで、
環境変数に git.exe のあるフォルダへのPATHが通してあることを前提とします。
1. RemoteSigned に PowerShell の設定を変更
以前のこの記事もご覧ください。
WindowsPowerShellを「管理者で実行」して、
Set-ExecutionPolicy
コマンドを実行。
その後コマンド パイプライン位置 1 のコマンドレット Set-ExecutionPolicy 次のパラメーターに値を指定してください: ExecutionPolicy:という文章が出てくるので、
RemoteSigned
と入力してEnter。
は、やっていない方はやっておかないと、Posh-Git が使えません。
Get-ExecutionPolicy
コマンドを実行して、現在のオプションが RemoteSigned
になっているか確認しておきましょう。
2. Posh-Git をインストール
以下のコマンドを1行ずつ実行していきます。
(繰り返しますが、git の初期設定・SSH鍵の生成が終わっていることを前提としています)
git clone git@github.com:dahlbyk/posh-git.git (ダウンロードが終わるまでしばらく待つ) cd posh-git .\install.ps1
これが終わると、ドキュメントフォルダの「WindowsPowerShell」フォルダに
「Microsoft.PowerShell_profile.ps1」というファイルができていると思います。
そうしましたらインストール完了です。
しかし、「よし終わった!」と思って、
先ほど clone した posh-git フォルダを削除すると、動かなくなってしまいます。
3. posh-git フォルダを消しても動くようにする
どうして動かなくなるかといえば簡単で、先ほどの
「Microsoft.PowerShell_profile.ps1」の中身をテキストエディタで見てもらえば、
# Load posh-git example profile . 'C:\posh-git\profile.example.ps1' # <= clone した場所により異なります
と書かれているのが確認できると思います。
つまり、clone したディレクトリを参照しているため、削除すると動かなくなってしまうのです。
これを解決するには、profile.example.ps1 を適当な場所にコピーしてくればOKです。
私は「WindowsPowerShell」ディレクトリに、
新たに「Modules」というフォルダ、さらにその中に「posh-git」ディレクトリを作って、そこに入れることにしました。
そして、「Microsoft.PowerShell_profile.ps1」の中身をこう書き替えました。
# Load posh-git example profile . 'C:\Users\UserName\Documents\WindowsPowerShell\Modules\posh-git\profile.example.ps1' # 上の UserName の部分は、人によって違います $GitPromptSettings.EnableFileStatus = $false # 簡易ステータス非表示
これで、最初に clone した posh-git フォルダを削除しても、正常に動くようになりました。
$GitPromptSettings.EnableFileStatus = $false
のオプションについては、
以下の記事で勧められていた設定を使わせていただきました。
Bitbucket | The Git solution for professional teams
ただしこのオプションを入れると、以下のような
前回のコミットからどれだけ変更があったのかの表示が出なくなってしまいますので、動作が遅いな、と感じたら入れるくらいにしときましょう。
ちなみに、Windows10 32bit でも posh git が動作することを確認しました。