問題
- 開発用のターミナルとして
Windows Terminal(PowerShell)
使っているけどブランチ名が表示されない。 - 現在のブランチをいちいち確認する手間を省きたい
解決策
dahlbyk/posh-git: A PowerShell environment for Gitを使う
環境確認
Windows Terminal
を開いたら次のコマンドを実行して、現在のPowerShell
のバージョンを確かめる。
$ $PSVersionTable.PSVersion
このコマンドを実行すると、下記のようにPowershell
のバージョンが確認できる。
README.md
を読んでみると5.x
系のバージョンであれば、このまま進めていって良さそうなので次に進む。
posh-gitのインストール
管理者として実行
でWindows Terminal
を開きなおし、次のコマンドを実行する。
$ PowerShellGet\Install-Module posh-git -Scope CurrentUser -AllowPrerelease -Force
このように(↓)AllowPrerelease
が認識されなかったら、PowerShellGet
のバージョンが要件以下という事。
次のコマンドを実行してNuGet
をインストールし、PowerShellGet
における更新の準備を行う。
$ Install-Module PowerShellGet -Scope CurrentUser -Force -AllowClobber
NuGet
をインストールできたら、PowerShellGet
がインストールされているかどうかを次のコマンドで確かめる。
$ Install-Module -Name PowerShellGet -Force
ならPowerShellGet
の更新を。
$ Update-Module -Name PowerShellGet
今までの設定を反映してもらうために一回閉じる。
準備ができたところで改めてposh-git
をインストール。
$ PowerShellGet\Install-Module posh-git -Scope CurrentUser -AllowPrerelease -Force
posh-gitを使う
インストールしても、それをPowerShell
に認識してもらったり使えるようにしてもらったりしなければ、ただそこにあるだけ。
ということで、インストールしたposh-git
を使えるようにするための設定をしていく。
まずは次のコマンドを実行し、posh-git
をPowerShell
に認識してもらう。
$ Import-Module posh-git
「これで完了かな?」と思い管理者以外のユーザーで開いてみると、posh-git
が使えていなかった。
ということで、Windows Terminal
を開けば自動でposh-git
が読み込まれたり管理者以外のユーザーでも使えるようにしたりするために次のコマンドを入力していく。
$ Add-PoshGitToProfile
$ Add-PoshGitToProfile -AllHosts
$ Add-PoshGitToProfile -AllUsers -AllHosts
-
Add-PoshGitToProfile
:Windows Terminal
を開けば自動でposh-git
が読み込まれるようにする。 -
Add-PoshGitToProfile -AllHosts
: 他のPowerShell
ホストでもposh-git
が使えるようにする。 -
Add-PoshGitToProfile -AllUsers -AllHosts
: 全てのユーザーがposh-git
を使えるようにする。
Add-PoshGitToProfile -AllUsers -AllHosts
の適用には-Forceパラメーターが必要
という警告が出ることもある。
その場合は次のコマンドを実行する。
$ Add-PoshGitToProfile -AllUsers -AllHosts -Force
管理者以外のユーザーでWindows Terminal
を開き、posh-git
が読み込まれているかを確かめる。
posh-gitのカスタマイズ
posh-git
ではブランチ名だけでなく、表示カスタマイズなどもできる。
次のコマンドで設定一覧を確認できる。
$ $GitPromptSettings
変更したい設定は**$GitPromptSettings.項目名
**で変更する。
自分が実行したのは次のコマンド達。
$ $GitPromptSettings.DefaultPromptAbbreviateHomeDirectory = $false
$ $GitPromptSettings.DefaultPromptPath.ForegroundColor = 'Orange'
$ $GitPromptSettings.DefaultPromptBeforeSuffix.Text = '`n'
$ $GitPromptSettings.DefaultPromptBeforeSuffix.Text = '`n$([DateTime]::now.ToString("MM-dd HH:mm:ss"))'
$ $GitPromptSettings.DefaultPromptBeforeSuffix.ForegroundColor = [ConsoleColor]::Magenta
$GitPromptSettings.
を省略して解説。
-
~.DefaultPromptAbbreviateHomeDirectory = $false
: 現在のディレクトリ以外のパスを~
で省略しない -
~.DefaultPromptPath.ForegroundColor = 'Orange'
: 現在のパスをオレンジ色に。 -
~.DefaultPromptBeforeSuffix.Text = '‘n'
: パス名とコマンド入力欄の間に改行を入れる。(`の代わりに‘を使用しています。) -
~.DefaultPromptBeforeSuffix.Text = '‘n$([DateTime]::now.ToString("MM-dd HH:mm:ss"))'
: コマンド入力欄の前に現在の時刻を表示する。(`の代わりに‘を使用しています。) -
~.DefaultPromptBeforeSuffix.ForegroundColor = [ConsoleColor]::Magenta
: 現在の時刻をマゼンタ色で表示する。
この他にも設定できる箇所はあり、それらはposh-git
のREADME.mdで解説されている。
自分に合ったposh-git
を設定して使いこなそう!!