6
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Windows TerminalでGitの現在のブランチ名を表示する(PowerShell編)

Posted at

問題

  • 開発用のターミナルとしてWindows Terminal(PowerShell)使っているけどブランチ名が表示されない。
  • 現在のブランチをいちいち確認する手間を省きたい

解決策

dahlbyk/posh-git: A PowerShell environment for Gitを使う

環境確認

Windows Terminalを開いたら次のコマンドを実行して、現在のPowerShellのバージョンを確かめる。

$ $PSVersionTable.PSVersion

このコマンドを実行すると、下記のようにPowershellのバージョンが確認できる。
image.png

README.mdを読んでみると5.x系のバージョンであれば、このまま進めていって良さそうなので次に進む。

posh-gitのインストール

管理者として実行Windows Terminalを開きなおし、次のコマンドを実行する。

$ PowerShellGet\Install-Module posh-git -Scope CurrentUser -AllowPrerelease -Force

このように(↓)AllowPrereleaseが認識されなかったら、PowerShellGetのバージョンが要件以下という事。
image.png

次のコマンドを実行してNuGetをインストールし、PowerShellGetにおける更新の準備を行う。

$ Install-Module PowerShellGet -Scope CurrentUser -Force -AllowClobber

このように尋ねられるがYでOK。
image.png

NuGetをインストールできたら、PowerShellGetがインストールされているかどうかを次のコマンドで確かめる。

$ Install-Module -Name PowerShellGet -Force

あったみたい。
image.png

ならPowerShellGetの更新を。

$ Update-Module -Name PowerShellGet

今までの設定を反映してもらうために一回閉じる。
準備ができたところで改めてposh-gitをインストール。

$ PowerShellGet\Install-Module posh-git -Scope CurrentUser -AllowPrerelease -Force

posh-gitを使う

インストールしても、それをPowerShellに認識してもらったり使えるようにしてもらったりしなければ、ただそこにあるだけ。
ということで、インストールしたposh-gitを使えるようにするための設定をしていく。

まずは次のコマンドを実行し、posh-gitPowerShellに認識してもらう。

$ Import-Module posh-git

インストールが完了すると早速表示が変わった。
image.png

「これで完了かな?」と思い管理者以外のユーザーで開いてみると、posh-gitが使えていなかった。
image.png

ということで、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ではブランチ名だけでなく、表示カスタマイズなどもできる。

デフォルトはこの状態だが、
image.png

自分はこのように変更した。
image.png

次のコマンドで設定一覧を確認できる。

$ $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-gitREADME.mdで解説されている。

自分に合ったposh-gitを設定して使いこなそう!!

参考資料

6
7
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?